fix(security): implement security module toggle actions
Complete Phase 4 implementation enabling ACL, WAF, and Rate Limiting toggle functionality in the Security Dashboard UI. Backend: Add 60-second TTL settings cache layer to Cerberus middleware Trigger async Caddy config reload on security.* setting changes Query runtime settings in Caddy manager before config generation Wire SettingsHandler with CaddyManager and Cerberus dependencies Frontend: Fix optimistic update logic to preserve mode field for WAF/rate_limit Replace onChange with onCheckedChange for all Switch components Add unit tests for mode preservation and rollback behavior Test Fixes: Fix CrowdSec startup test assertions (cfg.Enabled is global Cerberus flag) Fix security service test UUID uniqueness for UNIQUE constraint Add .first() to toast locator in wait-helpers.ts for multiple toasts Documentation: Add Security Dashboard Toggles section to features.md Mark phase4_security_toggles_spec.md as IMPLEMENTED Add E2E coverage mode (Docker vs Vite) documentation Enables 8 previously skipped E2E tests in security-dashboard.spec.ts and rate-limiting.spec.ts.
This commit is contained in:
@@ -17,3 +17,31 @@ model: Claude Sonnet 4
|
||||
|
||||
- **No Truncation**: Never pipe Playwright test output through `head`, `tail`, or other truncating commands. Playwright runs interactively and requires user input to quit when piped, causing the command to hang indefinitely.
|
||||
- **Full Output**: Always capture the complete test output to analyze failures accurately.
|
||||
|
||||
## E2E Coverage Collection
|
||||
|
||||
**IMPORTANT**: E2E coverage ONLY works when running against the Vite dev server, NOT Docker.
|
||||
|
||||
| Mode | Base URL | Coverage Support |
|
||||
|------|----------|-----------------|
|
||||
| Docker (`localhost:8080`) | ❌ No coverage (0% reported) |
|
||||
| Vite Dev (`localhost:5173`) | ✅ Real coverage data |
|
||||
|
||||
### When Coverage is Required
|
||||
|
||||
Use the dedicated skill that starts Vite and collects coverage:
|
||||
|
||||
```bash
|
||||
# Recommended for coverage collection
|
||||
.github/skills/scripts/skill-runner.sh test-e2e-playwright-coverage
|
||||
```
|
||||
|
||||
### When Coverage is NOT Required
|
||||
|
||||
For quick integration testing, run directly against Docker:
|
||||
|
||||
```bash
|
||||
npx playwright test --project=chromium
|
||||
```
|
||||
|
||||
**Why?** The `@bgotink/playwright-coverage` library uses V8 coverage which requires source files only available via Vite dev server.
|
||||
|
||||
Reference in New Issue
Block a user