Allow Distrans between completed auction bids
Verify and publish checkpoint container / container (push) Successful in 10m44s

This commit is contained in:
Quintine committed 2026-10-29 10:34:00 +11:00
1 parent ab7a947833
commit ccc4c7bb40
16 files changed
+250 -80

No files matched your search

+4 -3
View File
@@ -37,7 +37,7 @@ void test('projection exposes choices only to the holder and public history reve
assert.equal(JSON.stringify(viewGame(done,'o')).includes(card.id),false);
assert.match(done.log.at(-1)!.text,/Distrans/);assert.equal(done.log.some(l=>l.text.includes(card.name)),false);
});
void test('an untouched ordinary lot permits Distrans but its first bid or pass closes the provisional window',()=>{
void test('ordinary lots permit Distrans between completed bids and passes',()=>{
const {g,card}=fixture('richese',false,3);
assert.deepEqual(play(g,card.id).players[1].hand,[card]);
g.auction={cards:[g.deck.shift()!],index:0,bid:0,bidder:null,active:'t',passed:[],opener:0};
@@ -50,8 +50,9 @@ void test('an untouched ordinary lot permits Distrans but its first bid or pass
if(progress==='bid'){during.auction!.bid=1;during.auction!.bidder='t';}
else during.auction!.passed=['o'];
const before=structuredClone(during);
assert.throws(()=>play(during,card.id),/after bidding starts/);assert.deepEqual(during,before);
assert.match(viewGame(during,'d').distrans!.blocked!,/after bidding starts/);
assert.equal(viewGame(during,'d').distrans!.blocked,null);
const after=play(during,card.id);
assert.deepEqual(during,before);assert.deepEqual(after.auction,before.auction);
}
});
void test('an already-paid purchase response allows Distrans without changing its completed sale or creating a second response',()=>{