import assert from 'node:assert/strict'; import test from 'node:test'; import { applyAction, viewGame } from '../game/engine'; import { actIndependentOrdinary as act, createIndependentOrdinaryFixture as fixture, independentOrdinaryInventory as inventory, independentOrdinaryPlayer as player } from './fixture-semuta-independent-ordinary'; import { SEMUTA_DRUG_ID } from '../game/semuta-drug'; void test('an older pending ordinary discard continues without creating a new Semuta offer', () => { const f = fixture('hajr'); const played = act(f.game, f.owner, f.play); assert.ok(played.pendingTreacheryDiscard?.reaction); const saved = structuredClone(played); delete saved.pendingTreacheryDiscard!.reaction; assert.equal(viewGame(saved, f.owner).automaticContinuationPending, true); const resumed = applyAction(saved, f.owner, {type: 'advanceBots'}); assert.equal(resumed.pendingTreacheryDiscard, null); assert.ok(resumed.hajr.includes(f.owner)); assert.ok(player(resumed, f.holder).hand.some(card => card.id === SEMUTA_DRUG_ID)); assert.equal(resumed.discard.filter(card => card.id === f.card).length, 1); assert.deepEqual(inventory(resumed), f.originalInventory); });