UNPKG

salat

Version:

Daily Moroccan prayers time, right in your console, at the tip of your fingers

54 lines (53 loc) 1.94 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { render } from "ink-testing-library"; import { Text } from "ink"; import { describe, expect, it, vi } from "vitest"; import { useHijriDate } from "./useHijriDate.js"; // Mock useQuery const mockUseQuery = vi.fn(); vi.mock("@tanstack/react-query", () => ({ useQuery: (options) => mockUseQuery(options), })); const TestComponent = () => { const result = useHijriDate(); return _jsx(Text, { children: JSON.stringify(result) }); }; describe("useHijriDate", () => { it("should return loading state initially", () => { mockUseQuery.mockReturnValue({ data: undefined, error: null, isPending: true, }); const { lastFrame } = render(_jsx(TestComponent, {})); const result = JSON.parse(lastFrame()); expect(result.loading).toBe(true); expect(result.hijriDate).toBeNull(); expect(result.error).toBeNull(); }); it("should return data when query succeeds", () => { const mockDate = "18 Sha'ban 1447"; mockUseQuery.mockReturnValue({ data: mockDate, error: null, isPending: false, }); const { lastFrame } = render(_jsx(TestComponent, {})); const result = JSON.parse(lastFrame()); expect(result.loading).toBe(false); expect(result.hijriDate).toBe(mockDate); expect(result.error).toBeNull(); }); it("should return error when query fails", () => { mockUseQuery.mockReturnValue({ data: undefined, error: new Error("Failed to fetch"), isPending: false, }); const { lastFrame } = render(_jsx(TestComponent, {})); const result = JSON.parse(lastFrame()); expect(result.loading).toBe(false); expect(result.hijriDate).toBeNull(); expect(result.error).toBe("Failed to fetch"); }); });