27 lines
939 B
TypeScript
27 lines
939 B
TypeScript
import { renderHook } from "@testing-library/react";
|
|
import { describe, it, expect } from "vitest";
|
|
import { useBeforeUnloadGuard } from "../../../app/hooks/useBeforeUnloadGuard";
|
|
import { dispatchBeforeUnload } from "../../utils/test-utils";
|
|
|
|
describe("useBeforeUnloadGuard", () => {
|
|
it("does not intercept unload when disabled", () => {
|
|
renderHook(() => useBeforeUnloadGuard(false));
|
|
expect(dispatchBeforeUnload()).toBe(false);
|
|
});
|
|
|
|
it("prevents unload when enabled", () => {
|
|
renderHook(() => useBeforeUnloadGuard(true));
|
|
expect(dispatchBeforeUnload()).toBe(true);
|
|
});
|
|
|
|
it("drops the listener when enabled flips to false", () => {
|
|
const { rerender } = renderHook(
|
|
({ enabled }) => useBeforeUnloadGuard(enabled),
|
|
{ initialProps: { enabled: true } },
|
|
);
|
|
expect(dispatchBeforeUnload()).toBe(true);
|
|
rerender({ enabled: false });
|
|
expect(dispatchBeforeUnload()).toBe(false);
|
|
});
|
|
});
|