test: project nation receive-assist state

This commit is contained in:
2026-07-26 01:44:22 +00:00
parent de29e2e157
commit e58ffab2a2
2 changed files with 33 additions and 22 deletions
+4 -1
View File
@@ -206,12 +206,15 @@ function comparisonApplyTurnFixtureSetup(mixed $setup): void
'aux' => '{}',
];
$db->insertUpdate('nation', $data, $data);
$nationStor = KVStorage::getStorage($db, $row['id'], 'nation_env');
if (($setup['isolateWorld'] ?? false) === true) {
$nationStor->deleteValue('recv_assist');
}
if (array_key_exists('turnLastByOfficerLevel', $row)) {
$turnLastByOfficerLevel = $row['turnLastByOfficerLevel'];
if (!is_array($turnLastByOfficerLevel)) {
throw new \InvalidArgumentException('setup.nations.turnLastByOfficerLevel must be an object');
}
$nationStor = KVStorage::getStorage($db, $row['id'], 'nation_env');
foreach ($turnLastByOfficerLevel as $officerLevel => $lastTurn) {
$officerLevel = filter_var($officerLevel, FILTER_VALIDATE_INT);
if (
+10 -2
View File
@@ -215,7 +215,8 @@ function comparisonTurnStateSnapshot(array $request): array
);
$nations = array_map(
static fn(array $row): array => comparisonPickRow(
static function (array $row) use ($db): array {
$projected = comparisonPickRow(
$row,
[
'id' => 'nation',
@@ -235,7 +236,14 @@ function comparisonTurnStateSnapshot(array $request): array
'meta' => 'aux',
],
['aux'],
),
);
$nationStor = KVStorage::getStorage($db, (int)$row['nation'], 'nation_env');
$receivedAssist = $nationStor->getValue('recv_assist');
if (is_array($receivedAssist) && $receivedAssist !== []) {
$projected['meta']['recv_assist'] = $receivedAssist;
}
return $projected;
},
comparisonRowsById('nation', 'nation', $nationIds),
);