compare: preserve ordered conflict fixtures

This commit is contained in:
2026-07-26 23:09:26 +00:00
parent b417e117ad
commit 4b82f0b35c
+21 -1
View File
@@ -335,7 +335,27 @@ function comparisonApplyTurnFixtureSetup(mixed $setup): void
'trade' => 'trade',
'officerSet' => 'officer_set',
]);
if (array_key_exists('conflict', $row)) {
if (array_key_exists('conflictEntries', $row)) {
if (!is_array($row['conflictEntries'])) {
throw new \InvalidArgumentException('setup.cities.conflictEntries must be an array');
}
$orderedConflict = [];
foreach ($row['conflictEntries'] as $entry) {
if (
!is_array($entry)
|| count($entry) !== 2
|| !is_int($entry[0] ?? null)
|| $entry[0] < 1
|| !is_numeric($entry[1] ?? null)
) {
throw new \InvalidArgumentException(
'setup.cities.conflictEntries requires [positive nation id, numeric value] pairs'
);
}
$orderedConflict[$entry[0]] = $entry[1];
}
$patch['conflict'] = Json::encode($orderedConflict);
} elseif (array_key_exists('conflict', $row)) {
if (!is_array($row['conflict'])) {
throw new \InvalidArgumentException('setup.cities.conflict must be an object');
}