Verify native zero-marker battle continuation
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-29 04:59:34 +11:00
1 parent 7e3d745807
commit 4aecf8eb9c
4 files changed
+42 -4

No files matched your search

@@ -210,6 +210,23 @@ void test('a concealed native zero marker with no reserves creates public battle
'The removed zero marker creates no physical native presence after reveal.');
assert.deepEqual(inventory(game),originalInventory);
homeworldGameIntegrity(game);
// Resolve the native Homeworld's actual Traitor decision and shared final
// opportunity, rather than stopping when the zero marker is revealed.
game = applyAction(game,owner,{type:'traitorCall',call:false});
while (game.battle?.outcomeWindow && !game.battle.outcomeWindow.closed) {
const window = game.battle.outcomeWindow;
const actor = [window.attacker,window.defender].find(id=>!window.ready.includes(id));
assert.ok(actor, 'The final battle opportunity must have an unfinished combatant');
game = applyAction(game,actor,{type:'battleOutcomeReady',event:window.event});
}
assert.equal(game.battle,null, 'The zero-reserve native battle must finish');
assert.equal(game.lastBattleContext!.territory,native);
assert.equal(player(game,owner).noField!.deployed,null);
assert.equal(player(game,owner).reserves,0);
assert.deepEqual(group(game,native),{normal:0,elite:0});
assert.deepEqual(inventory(game),originalInventory);
homeworldGameIntegrity(game);
});
void test('all four legal bot profiles offer a foreign-to-native concealed marker return', () => {