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([]);
});
