homepage/vitest.setup.js
2026-02-04 20:58:22 -08:00

39 lines
1.5 KiB
JavaScript

import "@testing-library/jest-dom/vitest";
import { cleanup } from "@testing-library/react";
import { afterEach, vi } from "vitest";
afterEach(() => {
// Node-environment tests shouldn't require jsdom; guard cleanup accordingly.
if (typeof document !== "undefined") cleanup();
});
// Avoid NextAuth client-side fetches during unit tests.
vi.mock("next-auth/react", () => ({
SessionProvider: ({ children }) => children ?? null,
getProviders: vi.fn(async () => ({})),
}));
// implement a couple of common formatters mocked in next-i18next
vi.mock("next-i18next", () => ({
// Keep app/page components importable in unit tests.
appWithTranslation: (Component) => Component,
useTranslation: () => ({
i18n: { language: "en" },
t: (key, opts) => {
if (key === "common.number") return String(opts?.value ?? "");
if (key === "common.percent") return String(opts?.value ?? "");
if (key === "common.bytes") return String(opts?.value ?? "");
if (key === "common.bbytes") return String(opts?.value ?? "");
if (key === "common.byterate") return String(opts?.value ?? "");
if (key === "common.bibyterate") return String(opts?.value ?? "");
if (key === "common.bitrate") return String(opts?.value ?? "");
if (key === "common.duration") return String(opts?.value ?? "");
if (key === "common.ms") return String(opts?.value ?? "");
if (key === "common.date") return String(opts?.value ?? "");
if (key === "common.relativeDate") return String(opts?.value ?? "");
return key;
},
}),
}));