2.5 KiB
Preserve an unapplied job's missing application date
Source/verifier: 138f1ee69c2a1c2f3e039cc1219f53465afb59ef.
The backend JobApplication.DateApplied contract explicitly preserves null before submission, preventing fabricated dates from feeding follow-up, ghosting and application-volume analytics. Edit Job's loading converter instead substituted today's UTC date for missing or invalid values. An unrelated edit could therefore submit an invented application date.
The converter now leaves missing/invalid values empty. The existing save path submits null. Valid legacy timestamp conversion is unchanged and remains a separately tracked precision/timezone question. No data migration, backend API or status transition changed.
Evidence
- RED: three cases (null, empty, invalid) failed against the original converter; seven existing calendar cases passed.
- PASSED: 14 cases across calendar-day and Edit revision suites, executed with
TZ=America/Los_Angeles. Three new cases edit a Saved job's title and assert unchanged Saved status, revision7 and null date. Existing seven date cases and four revision cases overlap prior evidence. - PASSED: build/TypeScript and scoped ESLint.
- PASSED: nine real-widget journeys, 36 accessibility captures and 27 intercepted fixture writes. Three timezone contexts each exercised EN/light/1440 mouse, NB/dark/390 touch and NB/light/768 touch. Each journey additionally loaded a Saved/null fixture, showed an empty Applied on field, edited the title and submitted Saved/null with revision7. Existing live locale, selected company, theme, seven date controls and Add defaults remained covered. Zero page errors/unavailable reads; external fonts blocked.
- The refreshed mobile Bokmål Saved/null screenshot was visually inspected. No invented date appears in the form.
The earlier nine-journey date/shared-control runs overlap this extended matrix. These are finite paired configurations and intercepted API traffic, not real persistence, analytics, native-device or provider qualification.
Evidence: evidence/unapplied-date/; source/evidence/export bindings: UNAPPLIED_DATE_SOURCE_MANIFEST.json. Final owner A3, human/native, integrated security and release gates remain open. Physical CV/PDF rendering is unaffected.
Rollback: revert the two converter fallback changes; no schema or stored data is modified by the patch itself. Reverting would restore the known fabricated-date defect. Existing null dates remain null in storage until a real authorised write; no historical data repair was attempted.