new help section explaining classes and their mechanics
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user