# V1 Test Coverage Matrix

Status: Re-verified during Block 11.1 on 2026-06-24.

Fresh baseline:

- Starting commit: `775c2ed406f03a73a9b0ca621dea5b4482468616`
- Dart SDK: `3.12.2`
- `dart test`: 143 passing tests
- `dart pub get`, `dart format lib test`, `dart analyze`, and
  `git diff --check` passed.

## Scheduling rule coverage

| V1 behavior | Status | Representative coverage |
| --- | --- | --- |
| Flexible insert into a free slot | Covered | `test/scheduling_engine_test.dart` verifies inserting a backlog task into an open 20-minute slot. `test/edge_case_regression_test.dart` verifies next-available insertion uses the earliest fitting open slot. |
| Flexible insert pushes other flexible tasks | Covered | `test/scheduling_engine_test.dart` verifies inserting before a flexible task and pushing the later task. `test/edge_case_regression_test.dart` verifies quick-capture immediate scheduling uses normal insertion and push rules. |
| Locked blocks are never moved | Covered | `test/scheduling_engine_test.dart` verifies inserts skip locked time and respect expanded locked blocks. `test/timeline_state_test.dart` verifies locked occurrences expose overlay data without becoming task items. |
| Inflexible tasks are never moved | Covered | `test/scheduling_engine_test.dart` verifies inserts do not move inflexible items. `test/required_task_actions_test.dart` verifies invalid push destinations leave fixed task types unchanged. |
| Critical tasks remain visible and required | Covered | `test/scheduling_engine_test.dart` verifies inserts do not move critical items. `test/required_task_actions_test.dart` verifies missed critical tasks move to backlog with schedule cleared, and required push actions keep fixed items visible. |
| Push to next available | Covered | `test/required_task_actions_test.dart` verifies the next-available push destination uses the scheduling engine. `test/scheduling_engine_test.dart` verifies a flexible task moves after the current slot. |
| Push to tomorrow top of queue | Covered | `test/required_task_actions_test.dart` verifies tomorrow top-of-queue metadata. `test/scheduling_engine_test.dart` verifies tomorrow placement respects required and locked time. |
| Push to backlog | Covered | `test/required_task_actions_test.dart` verifies backlog push clears active schedule placement. `test/edge_case_regression_test.dart` verifies backlog moves do not duplicate task IDs. |
| End-of-day rollover | Covered | `test/scheduling_engine_test.dart` verifies unfinished flexible tasks roll to tomorrow in order and fixed/completed/cancelled items are excluded. `test/edge_case_regression_test.dart` verifies rollover uses an explicit source window and ignores future tasks. |
| Required task states | Covered | `test/required_task_actions_test.dart` verifies done, missed, cancelled, no-longer-relevant, backlog, and invalid push state transitions for required task types. |
| Surprise task overlaps | Covered | `test/surprise_task_logging_test.dart` verifies surprise tasks keep overlap metadata, can coexist with other scheduled items, and preserve the expected timeline order. |
| Child task parent completion | Covered | `test/child_tasks_test.dart` verifies parent-child ownership, child ordering, child movement, parent auto-completion, and no dependency graph behavior. |
| Timeline state mapping | Covered | `test/timeline_state_test.dart` verifies visible task mapping, required visibility, hidden locked overlay state, reveal state, manual compact mode, and timeline ordering. |
| Persistence-sensitive model behavior | Covered | `test/persistence_edge_cases_test.dart`, `test/document_mapping_test.dart`, and `test/repositories_test.dart` verify MongoDB-shaped document mapping, enum/date persistence names, repository contracts, and in-memory repository behavior. |

## Block 06-09 regression representation

| Area | Status | Representative coverage |
| --- | --- | --- |
| Quick capture and backlog ordering | Covered | `test/edge_case_regression_test.dart` covers quick-capture title validation, immediate scheduling behavior, and stale backlog age preservation. |
| Scheduling edge cases | Covered | `test/edge_case_regression_test.dart` covers earliest fitting insertion, locked-boundary placement, fixed item preservation, rollover windows, and backlog ID uniqueness. |
| Required task action edge cases | Covered | `test/required_task_actions_test.dart` covers non-punitive terminal states and fixed-task push guards. |
| Locked time and timeline overlays | Covered | `test/timeline_state_test.dart` covers hidden locked time, revealed overlay state, compact mode, and overlay/task separation. |
| MongoDB persistence boundary | Covered | `test/persistence_edge_cases_test.dart`, `test/document_mapping_test.dart`, and `test/repositories_test.dart` cover document-shaped serialization without adding a MongoDB runtime dependency. |

## Audit result

No uncovered implemented V1 scheduling behavior was found during this audit, so no production code or new tests were required for Chunk 10.1.
