Zum Hauptinhalt springen

Tests

Unit-Tests​

npm test # einmal (Pflicht vor jeder abgeschlossenen Änderung)
npm run test:watch # während der Entwicklung
npx tsc --noEmit # Typprüfung

Die Tests liegen in test/core/ (Kern) und test/<feature>/ (je Bereich), Beispieldaten in test/fixtures/. Sie brauchen weder Hardware noch root noch Netzwerk und warten nie auf echte Timer: Zeit wird über injizierbare Uhren (now) gesteuert, Verzögerungen über injizierbare Funktionen (z. B. failureDelay). Parser, Generatoren (smb.conf, exports, systemd-Units), Regeln und Services bekommen Unit-Tests; Services werden mit ihrem Mock-System getestet.

Mock-Modus​

npm run dev:mock # http://localhost:3000, Anmeldung admin / admin

Der Mock simuliert die Beispiel-Hardware vollständig, sodass sich die ganze Oberfläche auch unter Windows bedienen lässt. Für einen Test des Produktions-Builds:

npm run build
BUNKERBOX_MOCK=1 BUNKERBOX_DATA_DIR=/tmp/bb-data npm start

Regeln​

  • Nie gegen produktive Systeme testen. Zerstörende Vorgänge (Pools, Datasets, Benutzer) nur im Mock oder auf einer eigenen Test-VM mit Wegwerf-Platten.
  • Wartezeiten in Tests sind auf höchstens 2 Minuten begrenzt; keine langen sleep.