Release v0.1.19 2026-07-19
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { beforeEach, describe, expect, it } from "vitest";
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { createClassInventory } from "./healers";
|
||||
import { HOCKEY_PVP_BOSS_DAMAGE_MULTIPLIER, HOCKEY_PVP_GOAL_DAMAGE, HOCKEY_PVP_GOAL_Z, hockeyPvpBossAt, type HockeyPvpRemoteSnapshot } from "./hockeyHealingPvp";
|
||||
import { upcomingEncounterMechanic, useGameStore } from "./store";
|
||||
@@ -23,6 +23,8 @@ function createMaxedGear() {
|
||||
}
|
||||
|
||||
describe("Healing Hockey PVP encounter integration", () => {
|
||||
afterEach(() => vi.restoreAllMocks());
|
||||
|
||||
beforeEach(() => {
|
||||
useGameStore.getState().configureHealer(
|
||||
"priest",
|
||||
@@ -45,6 +47,27 @@ describe("Healing Hockey PVP encounter integration", () => {
|
||||
expect(state.difficultyDamageMultiplier).toBe(HOCKEY_PVP_BOSS_DAMAGE_MULTIPLIER);
|
||||
});
|
||||
|
||||
it("ignores start input until shared five-second countdown ends", () => {
|
||||
const now = vi.spyOn(Date, "now").mockReturnValue(5_000);
|
||||
useGameStore.getState().configureHealer(
|
||||
"priest",
|
||||
"Aelia",
|
||||
createClassInventory("priest"),
|
||||
[hockeyPvpBossAt(MATCH.seed, 0)],
|
||||
"hockey-healing-pvp",
|
||||
undefined,
|
||||
"initiate",
|
||||
{ ...MATCH, countdownEndsAtMs: 10_000 },
|
||||
);
|
||||
|
||||
useGameStore.getState().startEncounter();
|
||||
expect(useGameStore.getState().phase).toBe("briefing");
|
||||
|
||||
now.mockReturnValue(10_000);
|
||||
useGameStore.getState().startEncounter();
|
||||
expect(useGameStore.getState().phase).toBe("combat");
|
||||
});
|
||||
|
||||
it("normalizes both parties to default base gear without changing saved upgrades", () => {
|
||||
const maxedGear = createMaxedGear();
|
||||
const baseHealth = freshParty("priest", "Aelia").map((member) => member.maxHp);
|
||||
|
||||
Reference in New Issue
Block a user