jobhunt-platform/packages/connectors/tests
hermes 0e13ee5d51 feat(W1): packages/connectors - AF API, generic URL, dedupe, normalizer
- Connector protocol with fetch(query: SearchQuery) -> list[RawPosting]
- ArbetsformedlingenConnector: official Platsbanken API, field mapping
  (headline->title, employer.name->company, webpage_url->url,
  description.text->description, id->external_id), region mapping,
  polite User-Agent
- GenericUrlConnector: readability extraction (prefers main/article,
  strips nav/footer/script/style), title/company guess, Cloudflare
  challenge detection -> UnsupportedSite
- dedupe helper: (source, url) + external_id keying
- normalizer: RawPosting -> JobPosting (job_posting table shape)
- 37 tests, all passing, recorded fixtures (no live network)
- README with usage and mock examples
2026-07-30 18:23:24 +00:00
..
fixtures feat(W1): packages/connectors - AF API, generic URL, dedupe, normalizer 2026-07-30 18:23:24 +00:00
__init__.py feat(W1): packages/connectors - AF API, generic URL, dedupe, normalizer 2026-07-30 18:23:24 +00:00
test_arbetsformedlingen.py feat(W1): packages/connectors - AF API, generic URL, dedupe, normalizer 2026-07-30 18:23:24 +00:00
test_dedupe.py feat(W1): packages/connectors - AF API, generic URL, dedupe, normalizer 2026-07-30 18:23:24 +00:00
test_generic_url.py feat(W1): packages/connectors - AF API, generic URL, dedupe, normalizer 2026-07-30 18:23:24 +00:00
test_normalizer.py feat(W1): packages/connectors - AF API, generic URL, dedupe, normalizer 2026-07-30 18:23:24 +00:00