import { describe, expect, test } from "bun:test"; import { parseJobPostingFromHtml } from "../src/commands/detail"; const HTML_WITHOUT_JSON_LD = ` Journalistisk udvikler søges | jobdanmark

Journalistisk udvikler søges

JFM Banegårdspladsen 1, 5000 Odense C

Hvad nu hvis du med få klik kunne undersøge dit lokalområde?

Ansøg nu `; describe("parseJobPostingFromHtml", () => { test("falls back to rendered Jobdanmark HTML when JSON-LD is absent", () => { const parsed = parseJobPostingFromHtml( HTML_WITHOUT_JSON_LD, "journalistisk-udvikler", "https://jobdanmark.dk/job/journalistisk-udvikler", ); expect(parsed.title).toBe("Journalistisk udvikler søges"); expect(parsed.datePosted).toBe("03-07-2026"); expect(parsed.validThrough).toBe("02-08-2026 23.59"); expect(parsed.employmentType).toEqual(["Fuldtid"]); expect(parsed.hiringOrganization.name).toBe("JFM"); expect(parsed.hiringOrganization.logo).toBe("https://jobdanmark.dk/media/jfm-logo.png?width=100"); expect(parsed.jobLocation.streetAddress).toBe("Banegårdspladsen 1, 5000 Odense C"); expect(parsed.description).toContain("identificere relevante datasæt"); expect(parsed.applyUrl).toBe("https://jfm.career.emply.com/da/apply/example"); }); test("does not reject titles containing '404' mid-phrase", () => { const htmlWith404InTitle = HTML_WITHOUT_JSON_LD.replace( "Journalistisk udvikler søges | jobdanmark", "HTTP 404 Page Designer | jobdanmark", ).replace( '

Journalistisk udvikler søges

', '

HTTP 404 Page Designer

', ); const parsed = parseJobPostingFromHtml( htmlWith404InTitle, "http-404-designer", "https://jobdanmark.dk/job/http-404-designer", ); expect(parsed.title).toBe("HTTP 404 Page Designer"); expect(parsed.hiringOrganization.name).toBe("JFM"); }); });