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.