Support group departures in joint commitment plans
Verify and publish checkpoint container / container (push) Successful in 11m20s

This commit is contained in:
Quintine committed 2026-10-29 01:01:51 +11:00
1 parent 6524ed3bf2
commit 52d932002b
12 files changed
+552 -39

No files matched your search

+20 -2
View File
@@ -147,7 +147,7 @@ void test('native missing reciprocal consent never permits a definite combined f
});
void test('native known unaffordable payment with existing real consent offers No rather than treating finance as unknown consent', () => {
const f = fixture(), mixed = group('and', partner(f.partner), payment(f.recipient, 11));
const f = fixture(), mixed = group('and', partner(f.partner), payment(f.recipient, 13));
const asked = ask(declare(f).game, f.asker, f.target, mixed);
assert.equal(asked.allianceOffers[f.partner], f.target); assert.equal(player(asked, f.target).spice, 10);
assert.deepEqual(viewGame(asked, f.target).truthTurnActionAnswers, ['no']);
@@ -156,7 +156,7 @@ void test('native known unaffordable payment with existing real consent offers N
});
void test('native missing consent cannot conceal a known unaffordable whole payment branch as Unknown', () => {
const f = fixture({ consent: 'none' }), mixed = group('and', partner(f.partner), payment(f.recipient, 11));
const f = fixture({ consent: 'none' }), mixed = group('and', partner(f.partner), payment(f.recipient, 13));
const game = ask(declare(f).game, f.asker, f.target, mixed);
assert.equal(player(game, f.target).spice, 10);
assert.deepEqual(viewGame(game, f.target).truthTurnActionAnswers, ['no']);
@@ -166,6 +166,24 @@ void test('native missing consent cannot conceal a known unaffordable whole paym
assert.deepEqual(inventory(game), f.originalCards);
});
void test('native final-partner answer can fund eleven through a real payment and later Charity', () => {
const f = fixture(), mixed = group('and', partner(f.partner), payment(f.recipient, 11));
const asked = ask(declare(f).game, f.asker, f.target, mixed);
assert.ok(viewGame(asked, f.target).truthTurnActionAnswers?.includes('yes'));
let game = answer(asked, f.target, 'yes');
game = act(game, f.target, { type:'bribe', target:f.recipient, amount:10 });
assert.equal(player(game, f.target).spice, 0);
game = act(game, f.target, f.allianceAction);
game = close(game);
game = advance(game, state => state.phase === 2 && clean(state));
game = act(game, f.target, { type:'charity' });
assert.equal(player(game, f.target).spice, 2);
game = act(game, f.target, { type:'bribe', target:f.recipient, amount:1 });
assert.equal(player(game, f.recipient).bribes, 11);
assert.equal(promise(game, f.target).fulfilled, true);
physical(game, f);
});
void test('native payment after own Nexus Ready uniformly reopens readiness and preserves a required later break', () => {
const f = fixture({ consent: 'allied' }), mixed = group('and', partner(f.partner), payment(f.recipient));
let game = bind(f, 'no', mixed).game;