# Phase 5: Test Synchronization **Role**: QA engineer and developer **Goal**: Reconcile the test suite with the refactored codebase — remove obsolete tests, update broken tests, add tests for new code **Constraints**: All tests must pass at the end of this phase. Do not change production code here — only tests. **Skip condition**: If the run name contains `testability`, skip Phase 5 entirely — no test suite exists yet to synchronize. Proceed directly to Phase 6. ## 5a. Identify Obsolete Tests 1. Compare the pre-refactoring codebase structure (from Phase 0 inventory) with the current state 2. Find tests that reference removed functions, classes, modules, or endpoints 3. Find tests that duplicate coverage due to merged/consolidated code 4. Decide per test: **delete** (functionality removed) or **merge** (duplicates) Write `RUN_DIR/test_sync/obsolete_tests.md`: - Test file, test name, reason (target removed / target merged / duplicate coverage), action taken (deleted / merged into) ## 5b. Update Existing Tests 1. Run the full test suite — collect failures and errors 2. For each failing test, determine the cause: - Renamed/moved function or module → update import paths and references - Changed function signature → update call sites and assertions - Changed behavior (intentional per refactoring plan) → update expected values - Changed data structures → update fixtures and assertions 3. Fix each test, re-run to confirm it passes Write `RUN_DIR/test_sync/updated_tests.md`: - Test file, test name, change type (import path / signature / assertion / fixture), description of update ## 5c. Add New Tests 1. Identify new code introduced during Phase 4 that lacks test coverage: - New public functions, classes, or modules - New interfaces or abstractions introduced during decoupling - New error handling paths 2. Write tests following the same patterns and conventions as the existing test suite 3. Ensure coverage targets from Phase 3 are maintained or improved Write `RUN_DIR/test_sync/new_tests.md`: - Test file, test name, target function/module, coverage type (unit / integration / blackbox) **Self-verification**: - [ ] All obsolete tests removed or merged - [ ] All pre-existing tests pass after updates - [ ] New code from Phase 4 has test coverage - [ ] Overall coverage meets or exceeds Phase 3 baseline (75% overall, 90% critical paths) - [ ] No tests reference removed or renamed code **Save action**: Write test_sync artifacts; implemented tests go into the project's test folder **GATE (BLOCKING)**: ALL tests must pass before proceeding to Phase 6. If tests fail, fix the tests or ask user for guidance.