Skip to content

Commit 1ee35fe

Browse files
authored
Merge pull request #1742 from algolia/fix/MAGE-1251-detach-replica-3.14
MAGE-1251 Fix replica detach operation for 3.14
2 parents 01c4add + 141419c commit 1ee35fe

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

Service/Product/ReplicaManager.php

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -413,13 +413,16 @@ protected function detachReplica(string $primaryIndexName, string $replicaIndexN
413413
*/
414414
protected function removeReplicaFromReplicaSetting(array $replicaSetting, string $replicaToRemove): array
415415
{
416-
return array_filter(
417-
$replicaSetting,
418-
function ($replicaIndexSetting) use ($replicaToRemove) {
419-
$escaped = preg_quote($replicaToRemove);
420-
$regex = '/^' . $escaped . '|virtual\(' . $escaped . '\)$/';
421-
return !preg_match($regex, $replicaToRemove);
422-
}
416+
$escaped = preg_quote($replicaToRemove);
417+
$regex = '/^' . $escaped . '|virtual\(' . $escaped . '\)$/';
418+
419+
return array_values(
420+
array_filter(
421+
$replicaSetting,
422+
function ($replicaIndexSetting) use ($regex) {
423+
return !preg_match($regex, $replicaIndexSetting);
424+
}
425+
)
423426
);
424427
}
425428

Test/Unit/Service/ReplicaManagerTest.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ public function testVirtualReplicaSettingRemove(): void
5454

5555
$newReplicas = $this->replicaManager->removeReplicaFromReplicaSetting($replicaSetting, $replicaToRemove);
5656

57-
$this->assertNotContains($replicaToRemove, $newReplicas);
57+
$this->assertNotContains("virtual($replicaToRemove)", $newReplicas);
58+
$this->assertContains('virtual(replica1)', $newReplicas);
59+
$this->assertContains('virtual(replica3)', $newReplicas);
5860
}
5961

6062
public function testStandardReplicaSettingRemove(): void
@@ -69,5 +71,8 @@ public function testStandardReplicaSettingRemove(): void
6971
$newReplicas = $this->replicaManager->removeReplicaFromReplicaSetting($replicaSetting, $replicaToRemove);
7072

7173
$this->assertNotContains($replicaToRemove, $newReplicas);
74+
$this->assertContains('replica1', $newReplicas);
75+
$this->assertContains('replica3', $newReplicas);
76+
7277
}
7378
}

0 commit comments

Comments
 (0)