import { renderHook } from "@testing-library/react-hooks"; import { useDelayedPlayerDetails } from "../useDelayedPlayerDetails"; import { useIsTablet } from "@applicaster/zapp-react-native-utils/reactHooks"; jest.useFakeTimers(); jest.mock("@applicaster/zapp-react-native-utils/reactHooks", () => ({ useIsTablet: jest.fn().mockReturnValue(false), })); describe("useDelayedPlayerDetails", () => { beforeEach(() => { jest.clearAllMocks(); }); it("should return false initially, that changes after 1 second", () => { const { result } = renderHook(() => useDelayedPlayerDetails({ isInline: true, isDocked: false, isPip: false }) ); expect(result.current).toBe(false); jest.advanceTimersByTime(1000); expect(result.current).toBe(true); }); it("should return false when isPip is true", () => { const { result } = renderHook(() => useDelayedPlayerDetails({ isInline: true, isDocked: true, isPip: true }) ); expect(result.current).toBe(false); }); it("should return false when isDocked is true", () => { const { result } = renderHook(() => useDelayedPlayerDetails({ isInline: true, isDocked: true, isPip: false }) ); expect(result.current).toBe(false); }); it("should return true for tablet regardless of other flags", () => { (useIsTablet as jest.Mock).mockReturnValue(true); const { result } = renderHook(() => useDelayedPlayerDetails({ isInline: false, isDocked: false, isPip: false, }) ); jest.advanceTimersByTime(1000); expect(result.current).toBe(true); }); });