diff --git a/packages/engine/test/casting.test.ts b/packages/engine/test/casting.test.ts index 7721c22..4624a2f 100644 --- a/packages/engine/test/casting.test.ts +++ b/packages/engine/test/casting.test.ts @@ -398,6 +398,7 @@ describe("the ward window and chaos shields", () => { expect(state.wardPending).toEqual({ ownerId: owner.id, takerId: thief.id }); // Spring it: the thief bleeds 3 and the ward is spent. state = must(state, owner.id, { type: "wardChoice", play: true }); + while (state.stack) state = must(state, state.stack.waitingOn, { type: "pass" }); expect(state.players.find((p) => p.id === thief.id)!.life).toBe(12); expect(state.players.find((p) => p.id === owner.id)!.hand.some((c) => c.cardId === "ward")).toBe(false); }); diff --git a/packages/engine/test/expansion-combat.test.ts b/packages/engine/test/expansion-combat.test.ts index d502ec8..8520331 100644 --- a/packages/engine/test/expansion-combat.test.ts +++ b/packages/engine/test/expansion-combat.test.ts @@ -116,6 +116,7 @@ describe("expansion combat cards", () => { state = must(state, me.id, { type: "pickUpTreasure" }); expect(state.wardPending).toEqual({ ownerId: enemy.id, takerId: me.id }); state = must(state, enemy.id, { type: "wardChoice", play: true }); + while (state.stack) state = must(state, state.stack.waitingOn, { type: "pass" }); expect(state.players.find((p) => p.id === me.id)!.life).toBe(12); expect(state.players.find((p) => p.id === enemy.id)!.hand.some((c) => c.cardId === "ward")).toBe(false); }); diff --git a/packages/engine/test/game.test.ts b/packages/engine/test/game.test.ts index fe3167b..82795c2 100644 --- a/packages/engine/test/game.test.ts +++ b/packages/engine/test/game.test.ts @@ -288,7 +288,9 @@ describe("the Ward is played in the moment", () => { expect(state.wardPending).toEqual({ ownerId: "owner", takerId: "thief" }); // Nobody else may act while it hangs. expect(applyCommand(state, "thief", { type: "endTurn", draw: 0 }).ok).toBe(false); - const r = applyCommand(state, "owner", { type: "wardChoice", play: true }); + let r = applyCommand(state, "owner", { type: "wardChoice", play: true }); + // Rev 9: the bite rides the stack — wave the counteraction window through. + if (r.ok && r.state.stack) r = applyCommand(r.state, r.state.stack.waitingOn, { type: "pass" }); if (!r.ok) throw new Error(r.error); state = r.state; expect(state.wardPending).toBeNull();