F053 — Config Load, Save, Atomic Write, And Migration
F053 — Config Load, Save, Atomic Write, And Migration
- Root cause: The suite already exercised the migration path with real temp-directory files, but it did not explicitly prove the raw on-disk backup artifacts and temp-file cleanup strongly enough to close the refinement item.
- Files changed:
tests/main/configService.test.ts - What done: Tightened the real on-disk migration test so it now writes a legacy
config.json, runs the migration chain against the real filesystem, verifies the upgradedconfig.json, checks thatconfig.json.v1.bakpreserves the original raw bytes, confirmsconfig.json.v2.bakcontains the intermediate migrated state, and asserts thatconfig.json.tmpis not left behind. - Verification result:
npm test -- tests/main/configService.test.ts tests/main/firstRunGate.test.ts tests/renderer/firstRunModal.test.tsxpassed. Full verification also passed:npm run typecheck,npm run lint,npm testtwice, andnpm run build.
F083 — First-Run Accessibility Baseline
- Root cause: Invalid-path coverage only proved mocked inline error rendering; it did not verify keyboard-driven invalid submit announcement semantics in the dialog or prove with real files that a rejected path leaves
config.jsonuntouched. - Files changed:
src/renderer/features/first-run/FirstRunModal.tsx,tests/renderer/firstRunModal.test.tsx,tests/main/firstRunGate.test.ts - What done: Added explicit live-region semantics to the first-run inline error alert (
role="alert",aria-live="assertive",aria-atomic="true"), updated the renderer test to submit the invalid path via keyboard and assert the alert/ARIA wiring, and added a real on-disk first-run gate test that uses an actual tempconfig.jsonplus the realConfigServiceand filesystem probe to confirm an invalid missing-folder submit does not create or overwrite config data. - Verification result:
npm test -- tests/main/configService.test.ts tests/main/firstRunGate.test.ts tests/renderer/firstRunModal.test.tsxpassed. Full verification also passed:npm run typecheck,npm run lint,npm testtwice, andnpm run build.
IMPLEMENTATION_COMPLETE