mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 08:36:25 +00:00
Add Jobdanmark detail HTML fallback (#115)
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { parseJobPostingFromHtml } from "../src/commands/detail";
|
||||
|
||||
const HTML_WITHOUT_JSON_LD = `<!doctype html>
|
||||
<html lang="da">
|
||||
<head>
|
||||
<title>Journalistisk udvikler søges | jobdanmark</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="job-list-details">
|
||||
<div class="job-details-head row mx-0">
|
||||
<div class="company-logo col-auto">
|
||||
<img src="/media/jfm-logo.png?width=100" alt="JFM">
|
||||
</div>
|
||||
<h3 class="title">Journalistisk udvikler søges</h3>
|
||||
<a href="/virksomheder/jfm">JFM</a>
|
||||
<span>Banegårdspladsen 1, 5000 Odense C</span>
|
||||
</div>
|
||||
<p>Hvad nu hvis du med få klik kunne undersøge dit lokalområde?</p>
|
||||
<ul>
|
||||
<li>identificere relevante datasæt og muligheder</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="https://jfm.career.emply.com/da/apply/example" class="action primary count-click">Ansøg nu</a>
|
||||
<ul class="job-overview list-unstyled">
|
||||
<li><strong>Udgivet:</strong> 03-07-2026</li>
|
||||
<li><strong>Jobtype:</strong> Fuldtid</li>
|
||||
<li><strong>Arbejdssted:</strong> Banegårdspladsen 1, 5000 Odense C</li>
|
||||
<li><strong>Ansøgningsfrist:</strong> 02-08-2026 23.59</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>`;
|
||||
|
||||
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");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user