test: execute legacy turn command fixtures

This commit is contained in:
2026-07-25 14:17:25 +00:00
parent 1b035e4a42
commit bf96849027
3 changed files with 162 additions and 9 deletions
+54 -4
View File
@@ -45,6 +45,14 @@ function comparisonJsonValue(mixed $value): mixed
}
}
function comparisonOptionalCode(mixed $value): ?string
{
if (!is_string($value) || $value === '' || $value === 'None') {
return null;
}
return $value;
}
/** @param array<string, mixed> $row */
function comparisonPickRow(array $row, array $mapping, array $jsonKeys = []): array
{
@@ -97,11 +105,22 @@ function comparisonTurnStateSnapshot(array $request): array
$db = DB::db();
$game = KVStorage::getStorage($db, 'game_env');
$game->resetCache();
$worldValues = $game->getValues(['year', 'month', 'turnterm', 'turntime', 'isunited']);
$worldValues = $game->getValues([
'year',
'month',
'turnterm',
'turntime',
'isunited',
'scenario',
'init_year',
'init_month',
'develcost',
]);
$generals = array_map(
static fn(array $row): array => comparisonPickRow(
$row,
static function (array $row): array {
$result = comparisonPickRow(
$row,
[
'id' => 'no',
'name' => 'name',
@@ -113,6 +132,7 @@ function comparisonTurnStateSnapshot(array $request): array
'intelligence' => 'intel',
'experience' => 'experience',
'dedication' => 'dedication',
'expLevel' => 'explevel',
'officerLevel' => 'officer_level',
'injury' => 'injury',
'gold' => 'gold',
@@ -130,11 +150,36 @@ function comparisonTurnStateSnapshot(array $request): array
'leadershipExp' => 'leadership_exp',
'strengthExp' => 'strength_exp',
'intelExp' => 'intel_exp',
'dex1' => 'dex1',
'dex2' => 'dex2',
'dex3' => 'dex3',
'dex4' => 'dex4',
'dex5' => 'dex5',
'killTurn' => 'killturn',
'mySet' => 'myset',
'specialDomestic' => 'special',
'specialWar' => 'special2',
'personality' => 'personal',
'itemHorse' => 'horse',
'itemWeapon' => 'weapon',
'itemBook' => 'book',
'itemExtra' => 'item',
],
['last_turn', 'aux'],
),
);
foreach ([
'specialDomestic',
'specialWar',
'personality',
'itemHorse',
'itemWeapon',
'itemBook',
'itemExtra',
] as $key) {
$result[$key] = comparisonOptionalCode($result[$key] ?? null);
}
return $result;
},
comparisonRowsById('general', 'no', $generalIds),
);
@@ -185,6 +230,7 @@ function comparisonTurnStateSnapshot(array $request): array
'generalCount' => 'gennum',
'power' => 'power',
'war' => 'war',
'diplomacyLimit' => 'surlimit',
'meta' => 'aux',
],
['aux'],
@@ -298,6 +344,10 @@ function comparisonTurnStateSnapshot(array $request): array
'tickMinutes' => (int)$worldValues['turnterm'],
'turnTime' => (string)$worldValues['turntime'],
'isUnited' => (int)$worldValues['isunited'],
'scenarioId' => (int)$worldValues['scenario'],
'initYear' => (int)$worldValues['init_year'],
'initMonth' => (int)$worldValues['init_month'],
'develCost' => (int)$worldValues['develcost'],
],
'generals' => $generals,
'cities' => $cities,