UNPKG

salat

Version:

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

38 lines (37 loc) 1.64 kB
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { getHijriDate } from "./hijri.js"; describe("hijri service", () => { beforeEach(() => { vi.clearAllMocks(); }); afterEach(() => { vi.resetAllMocks(); }); it("should fetch hijri date successfully", async () => { const mockResponse = "السبت 18 شعبان 1447هـ | الموافق 07 فبراير 2026م"; global.fetch = vi.fn(() => Promise.resolve({ text: () => Promise.resolve(mockResponse), })); const result = await getHijriDate(); expect(result).toBe("18 Sha'ban 1447"); expect(global.fetch).toHaveBeenCalledWith("https://apisearch.hadithm6.ma/api/hijridate"); }); it("should handle empty response", async () => { global.fetch = vi.fn(() => Promise.resolve({ text: () => Promise.resolve(""), })); await expect(getHijriDate()).rejects.toThrow("Empty response from hijri date API"); }); it("should handle network errors", async () => { global.fetch = vi.fn(() => Promise.reject(new Error("Network error"))); await expect(getHijriDate()).rejects.toThrow("Failed to fetch hijri date"); }); it("should clean up trailing % from response", async () => { const mockResponse = "السبت 18 شعبان 1447هـ | الموافق 07 فبراير 2026م%"; global.fetch = vi.fn(() => Promise.resolve({ text: () => Promise.resolve(mockResponse), })); const result = await getHijriDate(); expect(result).toBe("18 Sha'ban 1447"); }); });