Release v0.1.19 2026-07-19

This commit is contained in:
Warren H
2026-07-19 14:15:30 -04:00
parent 7b522e3bc8
commit 437e70fc58
13 changed files with 113 additions and 8 deletions
+24 -1
View File
@@ -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);