Problem
No E2E tests to validate that new versions won't break CI:
- Can't test full workflows before deployment
- Regressions only discovered in production CI
- No confidence when making changes
- Manual testing is time-consuming and incomplete
Proposed E2E Testing Strategy
Test Fixture Strategy (Hybrid Approach)
Use synthetic fixtures for most tests (predictable, fast) and one real-world repo for smoke tests (confidence).
test_data/e2e_fixtures/
├── simple_monorepo/ # Basic case
├── complex_monorepo/ # Real-world complexity
└── regression_tests/ # Known issues
└── issue_001_ref_mismatch/
E2E Test Categories
Workflow Tests
- Test full check-workspace → publish workflow
- Test test execution workflow
Change Detection Tests
- Test transitive dependency detection
- Test cross-workspace dependencies
- Test whitelist/blacklist filtering
Publishing Tests
- Test GitHub release publishing
- Test Cargo registry publishing
- Test Docker image publishing
- Test NPM publishing
- Test S3 publishing
Parallel Execution Tests
- Test job_limit enforcement
- Test inner_job_limit enforcement
- Verify parallelism achieves expected speedup
Regression Tests
Test Infrastructure
Test Harness
pub struct TestMonorepo {
temp_dir: TempDir,
git_repo: Repository,
}
pub struct MockRegistry { /* ... */ }
pub struct MockGithubServer { /* ... */ }
Test Utilities
- Helper functions to run commands
- JSON output parsing
- Result verification helpers
CI Integration
- Run E2E tests in CI on every PR
- Pre-release validation before creating releases
- Generate E2E test reports
Performance Benchmarks
Track performance over time to detect regressions:
- check-workspace on large repos
- parallel test execution
- publish workflow timing
Implementation Plan
Week 1: Foundation
Week 2: Core Workflow Tests
Week 3: Advanced Scenarios
Week 4: Regression Tests
Week 5: Real-World Testing
Week 6: CI Integration
Success Metrics
Test Coverage Goals
- Check workspace: 100% of scenarios
- Publish: 90%
- Tests: 90%
- Other commands: 80%
Labels
testing, priority:high
Problem
No E2E tests to validate that new versions won't break CI:
Proposed E2E Testing Strategy
Test Fixture Strategy (Hybrid Approach)
Use synthetic fixtures for most tests (predictable, fast) and one real-world repo for smoke tests (confidence).
E2E Test Categories
Workflow Tests
Change Detection Tests
Publishing Tests
Parallel Execution Tests
Regression Tests
Test Infrastructure
Test Harness
Test Utilities
CI Integration
Performance Benchmarks
Track performance over time to detect regressions:
Implementation Plan
Week 1: Foundation
TestMonorepo,MockRegistry, etc.)Week 2: Core Workflow Tests
Week 3: Advanced Scenarios
Week 4: Regression Tests
Week 5: Real-World Testing
Week 6: CI Integration
Success Metrics
Test Coverage Goals
Labels
testing,priority:high