forked from phenom/healer-man
36 lines
967 B
TypeScript
36 lines
967 B
TypeScript
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();
|
|
});
|
|
});
|