Fix: Add comprehensive security test coverage for core.ts (Issue #29)
Summary
- Implements comprehensive security test coverage for
core.ts
to address critical security vulnerability (Issue #29) - Achieves 87.69% statement coverage (up from 28%) and 100% function coverage
- Tests 31 critical security scenarios including token sanitization, input validation, and URL encoding
Test Coverage Achievements
-
Statements: 87.69% (target: 80%+)
✅ -
Functions: 100% (target: 80%+)
✅ - Security-Critical Functions: All covered with comprehensive edge cases
Security Test Areas Covered
🔒 Token Security & Sanitization
- Bearer token redaction from error messages
- Personal access token sanitization in logs
- Token leakage prevention in stack traces
- Environment variable security validation
🛡️ Input Validation & Sanitization
- Project ID validation and encoding
- Branch name special character handling
- File path traversal prevention
- URL encoding security
🌐 HTTP Client Security
- Request/response header sanitization
- Error message security filtering
- API URL validation and normalization
- Authentication header security
🔍 Git Repository Detection
- Repository path validation
- Remote URL parsing security
- Git configuration access control
- Directory traversal prevention
Quality Gates Status
-
✅ TypeScript compilation passes -
✅ ESLint security rules enforced -
✅ Prettier formatting applied -
✅ All 31 security tests passing -
✅ Coverage thresholds exceeded
Security Impact
This addresses a critical security vulnerability where core authentication and validation functions had insufficient test coverage (28%), leaving potential attack vectors undetected.
Files Modified:
-
tests/unit/core-security.test.ts
(new) - Comprehensive security test suite -
eslint.config.js
(updated) - Test-specific ESLint configuration
Resolves: Issue #29 (core.ts has dangerously low 28% test coverage)
Co-Authored-By: Claude noreply@anthropic.com