fix(jobdanmark-search): normalize the detail command's HTML fallback branch

The JSON-LD and rendered-HTML branches returned structurally different
records: the fallback emitted raw DD-MM-YYYY page text as datePosted,
free text (including the literal "Loebende") as validThrough, and a
hardcoded null addressLocality. Overview dates now convert to ISO,
Loebende maps to null, and the locality derives from the workplace
address via the same exported extractCity search uses. Review finding
F25 (2026-08-19).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mads Lorentzen
2026-08-19 20:53:24 +02:00
co-authored by Claude Opus 5
parent bcba687fbf
commit dab215073e
4 changed files with 46 additions and 7 deletions
+8
View File
@@ -120,6 +120,14 @@ per-file diff commands.
### Fixed
- **`jobdanmark-search detail`'s HTML fallback emits the same shapes as its JSON-LD
branch** - a posting without JSON-LD returned `datePosted` as the page's raw
`DD-MM-YYYY` text, `validThrough` as free text (including the literal `"Løbende"`,
which would flow into stored data as a deadline), and a hardcoded `null`
`addressLocality`. The fallback now converts overview dates to `YYYY-MM-DD`, maps
`Løbende` to `null` (jobbank's precedent for the equivalent), and derives the locality
from the workplace address with the same postcode extraction search uses. Pinned in
`tests/detail-parsing.test.ts`.
- **`jobnet-search detail` no longer leaks the `1900-01-01` undisclosed-deadline
sentinel** - `search` maps the API's sentinel to `null` (with a test pinning it), but
`detail` dumped the raw response, so a posting whose deadline is simply not disclosed