import { afterEach, describe, expect, it, vi } from "vitest"; import { BOSS_LOOT_AUTO_DISMISS_MS, scheduleBossLootAutoDismiss, } from "./BossLootWindow"; describe("boss loot auto-dismiss", () => { afterEach(() => { vi.useRealTimers(); }); it("dismisses the visible reward after ten seconds", () => { vi.useFakeTimers(); const dismiss = vi.fn(); scheduleBossLootAutoDismiss(42, dismiss); vi.advanceTimersByTime(BOSS_LOOT_AUTO_DISMISS_MS - 1); expect(dismiss).not.toHaveBeenCalled(); vi.advanceTimersByTime(1); expect(dismiss).toHaveBeenCalledOnce(); expect(dismiss).toHaveBeenCalledWith(42); }); it("cancels a pending auto-dismiss when the popup changes or closes", () => { vi.useFakeTimers(); const dismiss = vi.fn(); const cancel = scheduleBossLootAutoDismiss(42, dismiss); cancel(); vi.advanceTimersByTime(BOSS_LOOT_AUTO_DISMISS_MS); expect(dismiss).not.toHaveBeenCalled(); }); });