test live sortie nation conflict cleanup

This commit is contained in:
2026-07-27 00:20:46 +00:00
parent d8220a18b3
commit 693906c6a8
2 changed files with 15 additions and 0 deletions
@@ -119,6 +119,7 @@ integration('live sortie PostgreSQL persistence retry', () => {
it.each([
['conquest and nation collapse', 'live-sortie-conquest.json'],
['collapsed nation conflict cleanup', 'live-sortie-collapse-conflict.json'],
['single defending general', 'live-sortie-defender.json'],
['multiple defending generals', 'live-sortie-multiple-defenders.json'],
['supply retreat', 'live-sortie-supply-retreat.json'],
@@ -93,6 +93,10 @@ integration('core ↔ legacy command-boundary differential', () => {
it.each([
['nation declaration', 'fixtures/turn-differential/nation-declaration.json'],
['live sortie conquest', 'fixtures/turn-differential/live-sortie-conquest.json'],
[
'live sortie collapsed nation conflict cleanup',
'fixtures/turn-differential/live-sortie-collapse-conflict.json',
],
['live sortie against a defending general', 'fixtures/turn-differential/live-sortie-defender.json'],
[
'live sortie against multiple defending generals',
@@ -104,6 +108,10 @@ integration('core ↔ legacy command-boundary differential', () => {
['live sortie conflict arbitration', 'fixtures/turn-differential/live-sortie-conflict-arbitration.json'],
['live sortie tied conflict', 'fixtures/turn-differential/live-sortie-conflict-tie.json'],
['live sortie outer lifecycle: conquest', 'fixtures/turn-differential/live-sortie-conquest.json'],
[
'live sortie outer lifecycle: collapsed nation conflict cleanup',
'fixtures/turn-differential/live-sortie-collapse-conflict.json',
],
['live sortie outer lifecycle: defender', 'fixtures/turn-differential/live-sortie-defender.json'],
[
'live sortie outer lifecycle: multiple defenders',
@@ -173,6 +181,12 @@ integration('core ↔ legacy command-boundary differential', () => {
});
expect(reference.after.cities.find((city) => city.id === 71)?.supplyState).toBe(1);
}
if (fixturePath.endsWith('live-sortie-collapse-conflict.json')) {
expect(reference.before.cities.find((city) => city.id === 71)?.conflict).toEqual({ 2: 1234 });
expect(reference.after.nations.some((nation) => nation.id === 2)).toBe(false);
expect(Object.keys(reference.after.cities.find((city) => city.id === 71)?.conflict ?? {})).toEqual([]);
expect(Object.keys(core.after.cities.find((city) => city.id === 71)?.conflict ?? {})).toEqual([]);
}
if (fixturePath.endsWith('live-sortie-conflict-arbitration.json')) {
expect(reference.before.cities.find((city) => city.id === 70)?.conflict).toEqual({ 3: 10_000 });
expect(reference.after.cities.find((city) => city.id === 70)).toMatchObject({