Support staged group shipment funding
Verify and publish checkpoint container / container (push) Canceled after 0s

This commit is contained in:
Quintine committed 2026-10-28 23:14:44 +11:00
1 parent 624f95dde4
commit 34aa64cdef
13 files changed
+828 -16

No files matched your search

+10
View File
@@ -4,6 +4,7 @@ import { baseDeck } from '../game/cards';
import { applyAction, createGame, newPlayer, viewGame, type Action, type Game } from '../game/engine';
import { createRicheseNoField } from '../game/richese-no-field';
import type { CoalitionState } from '../game/coalition-alliance';
import { isAlliedShipmentVisit } from '../game/allied-separation';
/** Controlled Basic phase and force placement; the three-member group is
* staged because Nexus cannot create one yet. No full-game claim is made. */
@@ -68,6 +69,15 @@ void test('ordinary movement cannot enter either group ally territory', () => {
assert.deepEqual(game, before);
});
void test('the player view gives the shared transit quote the public group membership', () => {
const game = fixture();
const view = viewGame(game, 'a');
const own = view.players.find(player => player.id === 'a')!;
assert.equal(isAlliedShipmentVisit(view, own, 'imperial_basin'), true);
assert.equal(isAlliedShipmentVisit(view, own, 'polar_sink'), false);
assert.equal(Object.hasOwn(view, 'coalitionEscrow'), false);
});
void test('a three-member group visitor can ship then depart without losing its pre-arrival forces', () => {
const original = fixture(); let game = ship(original);
assert.equal(game.players[0].spice, 4);