diff --git a/tests/AllianceExtensionExecution.test.ts b/tests/AllianceExtensionExecution.test.ts index 98bd93af1..8e4cbcebb 100644 --- a/tests/AllianceExtensionExecution.test.ts +++ b/tests/AllianceExtensionExecution.test.ts @@ -33,6 +33,9 @@ describe("AllianceExtensionExecution", () => { test("Successfully extends existing alliance", () => { jest.spyOn(player1, "canSendAllianceRequest").mockReturnValue(true); + jest.spyOn(player2, "isAlive").mockReturnValue(true); + jest.spyOn(player1, "isAlive").mockReturnValue(true); + game.addExecution(new AllianceRequestExecution(player1, player2.id())); game.executeNextTick(); game.executeNextTick(); @@ -47,11 +50,15 @@ describe("AllianceExtensionExecution", () => { expect(player2.allianceWith(player1)).toBeTruthy(); const allianceBefore = player1.allianceWith(player2)!; + const allianceSpy = jest.spyOn(allianceBefore, "extend"); const expirationBefore = allianceBefore.createdAt() + game.config().allianceDuration(); game.addExecution(new AllianceExtensionExecution(player1, player2.id())); game.executeNextTick(); + expect(allianceSpy).toHaveBeenCalledTimes(0); // both players must agree to extend + game.addExecution(new AllianceExtensionExecution(player2, player1.id())); + game.executeNextTick(); const allianceAfter = player1.allianceWith(player2)!; @@ -61,6 +68,7 @@ describe("AllianceExtensionExecution", () => { allianceAfter.createdAt() + game.config().allianceDuration(); expect(expirationAfter).toBeGreaterThanOrEqual(expirationBefore); + expect(allianceSpy).toHaveBeenCalledTimes(1); }); test("Fails gracefully if no alliance exists", () => {