import { afterEach, describe, expect, it } from "vitest"; import { getFrontendSnapshot, useFrontendStore } from "./store"; const originalState = useFrontendStore.getState(); afterEach(() => { useFrontendStore.setState({ activeSlotId: originalState.activeSlotId, screen: originalState.screen, guideClassId: originalState.guideClassId, guideAbilityId: originalState.guideAbilityId, notice: originalState.notice, }); }); describe("Class Help frontend state", () => { it("opens on ability one, resets selection on class change, and syncs guide state", () => { useFrontendStore.setState({ activeSlotId: null, screen: "home", guideClassId: "shaman", guideAbilityId: "ability6", notice: "Old notice", }); useFrontendStore.getState().openClassHelp(); let state = useFrontendStore.getState(); expect(state.screen).toBe("class-help"); expect(state.guideClassId).toBe("shaman"); expect(state.guideAbilityId).toBe("ability1"); expect(state.notice).toBe(""); state.selectGuideClass("paladin"); state.selectGuideAbility("ability5"); const snapshot = getFrontendSnapshot(); expect(snapshot.guideClassId).toBe("paladin"); expect(snapshot.guideAbilityId).toBe("ability5"); expect("openClassHelp" in snapshot).toBe(false); expect("selectGuideClass" in snapshot).toBe(false); expect("selectGuideAbility" in snapshot).toBe(false); }); });