import { renderHook } from "@testing-library/react"; import { useReducedMotion } from "./useReducedMotion"; // Mock do Framer Motion jest.mock("framer-motion", () => ({ useReducedMotion: jest.fn(), })); describe("useReducedMotion", () => { it("deve retornar false quando prefers-reduced-motion não está ativo", () => { const { useReducedMotion: mockUseReducedMotion } = jest.requireMock("framer-motion"); mockUseReducedMotion.mockReturnValue(false); const { result } = renderHook(() => useReducedMotion()); expect(result.current).toBe(false); }); it("deve retornar true quando prefers-reduced-motion está ativo", () => { const { useReducedMotion: mockUseReducedMotion } = jest.requireMock("framer-motion"); mockUseReducedMotion.mockReturnValue(true); const { result } = renderHook(() => useReducedMotion()); expect(result.current).toBe(true); }); it("deve retornar false quando o hook do Framer Motion retorna null", () => { const { useReducedMotion: mockUseReducedMotion } = jest.requireMock("framer-motion"); mockUseReducedMotion.mockReturnValue(null); const { result } = renderHook(() => useReducedMotion()); expect(result.current).toBe(false); }); it("deve retornar false quando o hook do Framer Motion retorna undefined", () => { const { useReducedMotion: mockUseReducedMotion } = jest.requireMock("framer-motion"); mockUseReducedMotion.mockReturnValue(undefined); const { result } = renderHook(() => useReducedMotion()); expect(result.current).toBe(false); }); });