import type { Rolle } from "@/generated/prisma/enums"; import { SITZUNG_COOKIE, sitzungErzeugen } from "@/lib/sitzung"; import { testPrisma } from "./db"; /** Legt einen Benutzer an und liefert ein passendes Sitzungscookie. */ export async function angemeldet(rolle: Rolle, benutzername = rolle.toLowerCase()) { const benutzer = await testPrisma.benutzer.create({ data: { benutzername, anzeigename: benutzername, rolle }, }); const cookie = `${SITZUNG_COOKIE}=${await sitzungErzeugen({ benutzerId: benutzer.id, herkunft: "passwort" })}`; return { benutzer, cookie }; } /** Baut eine Anfrage an die API mit Cookie und optional JSON-Rumpf. */ export function anfrage(methode: string, pfad: string, cookie: string | null, rumpf?: unknown): Request { return new Request(`http://localhost${pfad}`, { method: methode, headers: { ...(cookie ? { cookie } : {}), ...(rumpf !== undefined ? { "content-type": "application/json" } : {}), }, body: rumpf !== undefined ? JSON.stringify(rumpf) : undefined, }); } export const kontext = >(params: T) => ({ params: Promise.resolve(params) });