Problem / Why
The COM/VSTO coverage exemption (#197) made the coverage metric meaningful by scoping the denominator to genuinely-testable code, but the measured production-only rate (71.65%) is still below the 80% floor. The coverage roadmap (artifacts/research/csharp-coverage-roadmap.2026-06-12.md §6) identifies concrete, low-risk unit-test increments on already-testable seams that raise covered code toward the floor. This entry implements Increments 1-3.
Proposed Behavior
Add MSTest unit tests (MSTest + Moq + FluentAssertions) for the testable seams that #197 deliberately preserved in the denominator. No production behavior change is expected; introduce the smallest seam only if strictly required and flag it.
- Increment 1 - ToDoModel (
ToDoModel.Test): ToDoLoader.SetAndSave<T> (all overloads, read-only guard, null objectSetter/objectSaver paths); IDList.GetNextToDoID(string) (base case, ID-already-present loop, length-boundary); ProjectEntry (SetProjectId happy/null/malformed, CompareTo cases); BaseChanger remaining uncovered branches.
- Increment 2 - QuickFiler (
QuickFiler.Test): keyboard-action value objects (KaChar, KaKey, KaStringAsync, KaCharAsync, KaKeyAsync), KbdActions<> remaining branches, FilerQueue, QfcQueue pure queue-management paths.
- Increment 3 - TaskMaster (
TaskMaster.Test): AppStagingFilenames (injected settings stub), AppFileSystemFolderPaths.MatchBestSpecialFolder (pure LINQ), AppQuickFilerSettings remaining pure properties.
Acceptance Criteria
Constraints & Risks
Test Conditions
Source
From: docs/features/potential/2026-06-14-coverage-increments-1-3-testable-seams.md
Problem / Why
The COM/VSTO coverage exemption (#197) made the coverage metric meaningful by scoping the denominator to genuinely-testable code, but the measured production-only rate (71.65%) is still below the 80% floor. The coverage roadmap (
artifacts/research/csharp-coverage-roadmap.2026-06-12.md§6) identifies concrete, low-risk unit-test increments on already-testable seams that raise covered code toward the floor. This entry implements Increments 1-3.Proposed Behavior
Add MSTest unit tests (MSTest + Moq + FluentAssertions) for the testable seams that #197 deliberately preserved in the denominator. No production behavior change is expected; introduce the smallest seam only if strictly required and flag it.
ToDoModel.Test):ToDoLoader.SetAndSave<T>(all overloads, read-only guard, null objectSetter/objectSaver paths);IDList.GetNextToDoID(string)(base case, ID-already-present loop, length-boundary);ProjectEntry(SetProjectIdhappy/null/malformed,CompareTocases);BaseChangerremaining uncovered branches.QuickFiler.Test): keyboard-action value objects (KaChar,KaKey,KaStringAsync,KaCharAsync,KaKeyAsync),KbdActions<>remaining branches,FilerQueue,QfcQueuepure queue-management paths.TaskMaster.Test):AppStagingFilenames(injected settings stub),AppFileSystemFolderPaths.MatchBestSpecialFolder(pure LINQ),AppQuickFilerSettingsremaining pure properties.Acceptance Criteria
Constraints & Risks
MyBox/settings wrapper already present in source), use the smallest one and flag it.Test Conditions
Source
From: docs/features/potential/2026-06-14-coverage-increments-1-3-testable-seams.md