import { test, expect } from "@playwright/test"; import { findUnguardedActionsInRepo } from "../support/guard-scan"; /** * Default-Deny-Beweis für Server Actions (Definition of Done #2, * Querschnittsstandard 3): JEDE "use server"-Funktion ruft als erste Anweisung * einen Guard (require{Session,Role,OwnBrigade,PlatformAdmin,WehrAdmin}). * * STATISCHER Check — braucht weder Server noch DB; lauffähig offline. Identisch * als Vitest-Unit-Test (tests/unit/server-actions-guard.test.ts) abgesichert. * * Negativ-Probe: Entfernen eines Guards aus einer Action macht diesen Test rot. * * Genuin öffentliche Login-Actions (vor der Authentifizierung) sind in * PUBLIC_ACTION_ALLOWLIST (guard-scan.ts) ausgenommen. */ test('jede "use server"-Funktion ruft einen Guard', () => { const offenders = findUnguardedActionsInRepo(); expect( offenders, `Server Actions ohne Guard:\n${offenders.join("\n")}`, ).toEqual([]); });