import { afterEach, describe, expect, it } from "vitest"; import { prefersReducedMotion } from "./useReducedMotion"; const original = window.matchMedia; afterEach(() => { if (original) { window.matchMedia = original; } else { delete (window as { matchMedia?: unknown }).matchMedia; } }); describe("prefersReducedMotion", () => { it("returns false when matchMedia is unavailable", () => { delete (window as { matchMedia?: unknown }).matchMedia; expect(prefersReducedMotion()).toBe(false); }); it("reflects the media query result when matchMedia exists", () => { (window as { matchMedia?: unknown }).matchMedia = (q: string) => ({ matches: q.includes("reduce"), media: q, }); expect(prefersReducedMotion()).toBe(true); (window as { matchMedia?: unknown }).matchMedia = () => ({ matches: false, }); expect(prefersReducedMotion()).toBe(false); }); });