Problem
API test coverage has dropped to 4% after recent development waves. Many new v2.0-beta features have no tests, and some existing tests are broken.
This creates significant regression risk and makes bug fixes difficult to validate.
Current Status
- Overall API Coverage: 4.0% (down from ~65-70%)
- Handler Coverage: Mostly 0.0%
- Middleware Coverage: 4.6%
- Database Coverage: ~25%
Coverage Breakdown
Handler Packages (Most at 0.0%)
internal/handlers/agents_test.go - Agent management
internal/handlers/apikeys_test.go - BROKEN (panic)
internal/handlers/agent_websocket_test.go - WebSocket handlers
internal/handlers/vnc_proxy_test.go - VNC proxy (new in v2.0)
internal/handlers/sessiontemplates_test.go - Templates
- Plus 20+ other handler test files with low/no coverage
Middleware (4.6% coverage)
internal/middleware/ratelimit.go - Rate limiting (new)
internal/middleware/inputvalidation.go - Input validation (new)
internal/middleware/securityheaders.go - Security headers (new)
internal/middleware/structured_logger.go - Structured logging (new)
internal/middleware/agent_auth.go - Agent authentication
- Plus 10+ other middleware files
Database Layer (~25% coverage)
internal/db/sessions_test.go - Session CRUD
internal/db/users_test.go - User management
internal/db/groups_test.go - Group management
internal/db/applications_test.go - Applications
New v2.0 Features Requiring Tests
Wave 15-17 Features (Untested)
-
Agent WebSocket Handlers:
- Agent registration/deregistration
- Command processing
- Status updates
- Heartbeat handling
-
VNC Proxy Handlers (NEW):
- VNC connection establishment
- Tunnel creation (agent → pod)
- WebSocket proxy
- Connection cleanup
-
Session Management v2.0:
- Session creation (with agent command)
- Session termination (via agent)
- Session hibernation
- Session wake
- Status tracking
-
Template Manifest Handling:
- Template manifest construction
- JSON serialization with proper tags
- Database fallback logic
-
New Middleware:
- Rate limiting (requests/min)
- Input validation (XSS, SQL injection)
- Security headers (CSP, HSTS, etc.)
- Structured logging (JSON format)
Test Requirements
Handler Tests (40%+ coverage target)
Agent Handlers
VNC Proxy Handlers
Session Handlers (v2.0)
Template Handlers
Middleware Tests (60%+ coverage target)
Security Middleware
Logging Middleware
Auth Middleware
Database Tests (40%+ coverage target)
Test Infrastructure
Mock Setup
// Mock database
mockDB := &MockDatabase{}
// Mock K8s client (optional for v2.0)
mockK8s := &MockK8sClient{}
// Mock AgentHub
mockHub := &MockAgentHub{}
// Mock WebSocket connection
mockWS := &MockWebSocket{}
Test Utilities Needed
- HTTP test request helpers
- WebSocket test client
- Mock agent client
- Database test fixtures
Deliverables
-
Fixed Test Files:
- Fix
apikeys_test.go panic
- Fix broken handler tests
-
New/Enhanced Test Files:
internal/handlers/agents_test.go (enhanced)
internal/handlers/vnc_proxy_test.go (new)
internal/handlers/sessiontemplates_test.go (enhanced)
internal/middleware/ratelimit_test.go (enhanced)
internal/middleware/inputvalidation_test.go (new)
internal/middleware/securityheaders_test.go (new)
internal/middleware/structured_logger_test.go (new)
- Plus 10+ other enhanced test files
-
Coverage Report:
- Overall API: 40%+ (up from 4%)
- Handlers: 40%+ (up from ~0%)
- Middleware: 60%+ (up from 4.6%)
- Database: 50%+ (up from ~25%)
-
Test Documentation:
- Test execution guide
- Mock setup guide
- Test data fixtures
Success Criteria
- ✅ All broken tests fixed
- ✅ 40%+ overall API coverage
- ✅ 40%+ handler coverage
- ✅ 60%+ middleware coverage
- ✅ All v2.0 features tested
- ✅ 200+ new test cases written
References
- Source Code:
api/internal/
- Broken Test:
api/internal/handlers/apikeys_test.go
- Test Coverage Analysis:
.claude/reports/TEST_COVERAGE_ANALYSIS_2025-11-23.md
Estimated Effort
4-5 days (32-40 hours)
- Fix broken tests: 4-8 hours
- Handler tests: 12-16 hours
- Middleware tests: 8-12 hours
- Database tests: 8-12 hours
Acceptance Criteria
- All existing tests fixed and passing
- 40%+ overall API coverage achieved
- All new v2.0 endpoints tested
- Security middleware fully tested
- VNC proxy handlers validated
- 200+ test cases added
Problem
API test coverage has dropped to 4% after recent development waves. Many new v2.0-beta features have no tests, and some existing tests are broken.
This creates significant regression risk and makes bug fixes difficult to validate.
Current Status
Coverage Breakdown
Handler Packages (Most at 0.0%)
internal/handlers/agents_test.go- Agent managementinternal/handlers/apikeys_test.go- BROKEN (panic)internal/handlers/agent_websocket_test.go- WebSocket handlersinternal/handlers/vnc_proxy_test.go- VNC proxy (new in v2.0)internal/handlers/sessiontemplates_test.go- TemplatesMiddleware (4.6% coverage)
internal/middleware/ratelimit.go- Rate limiting (new)internal/middleware/inputvalidation.go- Input validation (new)internal/middleware/securityheaders.go- Security headers (new)internal/middleware/structured_logger.go- Structured logging (new)internal/middleware/agent_auth.go- Agent authenticationDatabase Layer (~25% coverage)
internal/db/sessions_test.go- Session CRUDinternal/db/users_test.go- User managementinternal/db/groups_test.go- Group managementinternal/db/applications_test.go- ApplicationsNew v2.0 Features Requiring Tests
Wave 15-17 Features (Untested)
Agent WebSocket Handlers:
VNC Proxy Handlers (NEW):
Session Management v2.0:
Template Manifest Handling:
New Middleware:
Test Requirements
Handler Tests (40%+ coverage target)
Agent Handlers
VNC Proxy Handlers
Session Handlers (v2.0)
Template Handlers
Middleware Tests (60%+ coverage target)
Security Middleware
Logging Middleware
Auth Middleware
Database Tests (40%+ coverage target)
Test Infrastructure
Mock Setup
Test Utilities Needed
Deliverables
Fixed Test Files:
apikeys_test.gopanicNew/Enhanced Test Files:
internal/handlers/agents_test.go(enhanced)internal/handlers/vnc_proxy_test.go(new)internal/handlers/sessiontemplates_test.go(enhanced)internal/middleware/ratelimit_test.go(enhanced)internal/middleware/inputvalidation_test.go(new)internal/middleware/securityheaders_test.go(new)internal/middleware/structured_logger_test.go(new)Coverage Report:
Test Documentation:
Success Criteria
References
api/internal/api/internal/handlers/apikeys_test.go.claude/reports/TEST_COVERAGE_ANALYSIS_2025-11-23.mdEstimated Effort
4-5 days (32-40 hours)
Acceptance Criteria