Files
Wabenhain/src/lib/prisma-search.test.ts
T
Nick Szaunig c7927f2883 feat: Wabenhain Honig-Shop Anwendung
Vollstaendige Next.js/Prisma-E-Commerce-Anwendung fuer eine Imkerei:
Shop, Warenkorb, Stripe-Checkout, Kundenkonto mit 2FA, Admin-Bereich
(Produkte, Ernten, Chargen, Bestellungen, Gutscheine, admin-editierbare
Website-Inhalte), i18n (DE/EN), Rate-Limiting/CSP/Audit-Log-Haertung,
PostgreSQL- und MySQL-Unterstuetzung ueber austauschbare Prisma-
Treiber-Adapter, Unit-/Komponenten-/E2E-Tests.
2026-08-17 14:30:28 +02:00

50 lines
2.0 KiB
TypeScript

import { describe, test, expect, beforeEach, afterEach, vi } from "vitest";
// insensitiveContains/insensitiveEquals read DATABASE_PROVIDER once at module
// load (not per call, see prisma-search.ts) — vi.resetModules() + a fresh
// dynamic import per test is required to observe both branches.
const originalProvider = process.env.DATABASE_PROVIDER;
beforeEach(() => {
vi.resetModules();
});
afterEach(() => {
if (originalProvider === undefined) delete process.env.DATABASE_PROVIDER;
else process.env.DATABASE_PROVIDER = originalProvider;
});
describe("insensitiveContains", () => {
test("adds mode: insensitive for the postgresql provider", async () => {
process.env.DATABASE_PROVIDER = "postgresql";
const { insensitiveContains } = await import("./prisma-search");
expect(insensitiveContains("mild")).toEqual({ contains: "mild", mode: "insensitive" });
});
test("adds mode: insensitive when DATABASE_PROVIDER is unset (default)", async () => {
delete process.env.DATABASE_PROVIDER;
const { insensitiveContains } = await import("./prisma-search");
expect(insensitiveContains("mild")).toEqual({ contains: "mild", mode: "insensitive" });
});
test("omits mode for the mysql provider", async () => {
process.env.DATABASE_PROVIDER = "mysql";
const { insensitiveContains } = await import("./prisma-search");
expect(insensitiveContains("mild")).toEqual({ contains: "mild" });
});
});
describe("insensitiveEquals", () => {
test("adds mode: insensitive for the postgresql provider", async () => {
process.env.DATABASE_PROVIDER = "postgresql";
const { insensitiveEquals } = await import("./prisma-search");
expect(insensitiveEquals("mild")).toEqual({ equals: "mild", mode: "insensitive" });
});
test("omits mode for the mysql provider", async () => {
process.env.DATABASE_PROVIDER = "mysql";
const { insensitiveEquals } = await import("./prisma-search");
expect(insensitiveEquals("mild")).toEqual({ equals: "mild" });
});
});