mission-control/tests
nyk 96168fe2f4
feat: audit hardening, webhook retry, and local Claude session tracking (#68)
Security hardening:
- Fix timing-safe comparison bugs in webhooks.ts and auth.ts (was comparing buffer with itself)
- Harden rate limiter IP extraction — use rightmost untrusted IP from XFF chain with MC_TRUSTED_PROXIES support
- Add 12-char minimum password validation in Zod schema and runtime check
- Add Zod validation on PUT /api/tasks bulk status update

Webhook retry system (completing in-progress feature):
- Exponential backoff with circuit breaker in webhooks.ts
- POST /api/webhooks/retry endpoint for manual retry
- GET /api/webhooks/verify-docs endpoint for signature verification docs
- Scheduler integration for automatic retry processing
- Unit tests for signature verification and backoff logic

Local Claude Code session tracking:
- New claude-sessions.ts scanner parses JSONL transcripts from ~/.claude/projects/
- Extracts model, tokens, messages, cost estimates, active status per session
- Migration 020 adds claude_sessions table
- GET/POST /api/claude/sessions endpoint with filtering and aggregate stats
- Scheduler runs scan every 60s with MC_CLAUDE_HOME config

Quality improvements:
- Replace all console.error/warn with structured logger across 31 API routes
- Add Docker HEALTHCHECK directive
- Add vitest coverage config with v8 provider (60% threshold)
- Update README with new features, API docs, env vars, and roadmap items
- Fix E2E tests for password length and rate limiter IP changes
2026-03-02 22:17:35 +07:00
..
README.md test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
agent-costs.spec.ts feat: add per-agent cost breakdown panel 2026-03-02 10:46:13 +07:00
agents-crud.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
alerts-crud.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
auth-guards.spec.ts test: add 52 Playwright E2E tests covering all critical fixes 2026-02-27 15:38:49 +07:00
csrf-validation.spec.ts test: add 52 Playwright E2E tests covering all critical fixes 2026-02-27 15:38:49 +07:00
delete-body.spec.ts test: add 52 Playwright E2E tests covering all critical fixes 2026-02-27 15:38:49 +07:00
direct-cli.spec.ts feat: add direct CLI integration for gateway-free tool connections 2026-03-02 11:45:12 +07:00
github-sync.spec.ts feat: add GitHub Issues sync (Phase 1, Issue #58) 2026-03-02 12:45:39 +07:00
helpers.ts feat: audit hardening, webhook retry, and local Claude session tracking (#68) 2026-03-02 22:17:35 +07:00
legacy-cookie-removed.spec.ts test: add 52 Playwright E2E tests covering all critical fixes 2026-02-27 15:38:49 +07:00
limit-caps.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
login-flow.spec.ts fix: resolve all 44 failing CI E2E tests (#64) 2026-03-02 13:53:00 +07:00
notifications.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
openapi.spec.ts feat: add OpenAPI 3.1 documentation with Scalar UI 2026-03-02 11:03:16 +07:00
quality-review.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
rate-limiting.spec.ts feat: audit hardening, webhook retry, and local Claude session tracking (#68) 2026-03-02 22:17:35 +07:00
search-and-export.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
task-comments.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
tasks-crud.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
timing-safe-auth.spec.ts test: add 52 Playwright E2E tests covering all critical fixes 2026-02-27 15:38:49 +07:00
user-management.spec.ts feat: audit hardening, webhook retry, and local Claude session tracking (#68) 2026-03-02 22:17:35 +07:00
webhooks-crud.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00
workflows-crud.spec.ts test: add 94 E2E tests covering all CRUD routes + fix middleware location 2026-03-02 02:21:10 +07:00

README.md

E2E Tests

Playwright end-to-end specs for Mission Control API and UI.

Running

# Start the dev server first (or let Playwright auto-start via reuseExistingServer)
pnpm dev --hostname 127.0.0.1 --port 3005

# Run all tests
pnpm test:e2e

# Run a specific spec
pnpm exec playwright test tests/tasks-crud.spec.ts

Test Environment

Tests require .env.local with:

  • API_KEY=test-api-key-e2e-12345
  • MC_DISABLE_RATE_LIMIT=1 (bypasses mutation/read rate limits, keeps login rate limit active)

Spec Files

Security & Auth

  • auth-guards.spec.ts — All API routes return 401 without auth
  • csrf-validation.spec.ts — CSRF origin header validation
  • legacy-cookie-removed.spec.ts — Old cookie format rejected
  • login-flow.spec.ts — Login, session, redirect lifecycle
  • rate-limiting.spec.ts — Login brute-force protection
  • timing-safe-auth.spec.ts — Constant-time API key comparison

CRUD Lifecycle

  • tasks-crud.spec.ts — Tasks POST/GET/PUT/DELETE with filters, Aegis gate
  • agents-crud.spec.ts — Agents CRUD, lookup by name/id, admin-only delete
  • task-comments.spec.ts — Threaded comments on tasks
  • workflows-crud.spec.ts — Workflow template CRUD
  • webhooks-crud.spec.ts — Webhooks with secret masking and regeneration
  • alerts-crud.spec.ts — Alert rule CRUD with full lifecycle
  • user-management.spec.ts — User admin CRUD

Features

  • notifications.spec.ts — Notification delivery and read tracking
  • quality-review.spec.ts — Quality reviews with batch lookup
  • search-and-export.spec.ts — Global search, data export, activity feed

Infrastructure

  • limit-caps.spec.ts — Endpoint limit caps enforced
  • delete-body.spec.ts — DELETE body standardization

Shared

  • helpers.ts — Factory functions (createTestTask, createTestAgent, etc.) and cleanup helpers