Files
msd-core/tests
Tom Boucher 4db185da74 fix(#1161): make phase complete idempotent for roadmap completion dates (#1177)
* fix(#1161): preserve existing roadmap completion date on repeat phase complete

Guard the Completed cell write in cmdRoadmapUpdatePlanProgress so that a
non-empty, non-placeholder date is never overwritten on repeat invocations.
Also routes the date source through realClock.today() so GSD_NOW_MS pins
the written date deterministically in tests (clock seam parity with the
rest of the codebase). Regression tests added to
4-phase-complete-cjs-regression.test.cjs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(#1161): preserve completion date in cmdPhaseComplete (real handler) + drive regression via phase complete CLI

- Import realClock in phase.cts; switch cmdPhaseComplete from bare `new Date()` to `realClock.today()` so the clock seam is honoured in tests
- Apply preserve-or-stamp guard to both 5-col (cells[4]) and 4-col (cells[3]) paths in cmdPhaseComplete: keep existing non-empty, non-dash date; only stamp today on first completion
- Rewrite the #1161 describe block in 4-phase-complete-cjs-regression.test.cjs to drive the real handler via runGsdTools('phase complete 1') end-to-end; cases (a)/(b)/(c)/(d) all FAIL against unfixed build and pass post-fix

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(#1161): preserve only date-shaped completion cells (self-heal garbage); correct test helper for 5-col

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(#1161): add changeset fragment for completion-date idempotence

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 21:46:10 -04:00
..