Files

21 lines
1.3 KiB
TypeScript

import assert from "node:assert/strict";
import { homeSchema, publisherSchema, articleModifiedTime, articleGenre, INFO_SEO } from "../shared/seo";
const home = homeSchema();
assert.equal(home["@graph"].filter(x => x["@type"] === "WebSite").length, 1);
assert.equal(publisherSchema()["@type"], "NewsMediaOrganization");
assert.ok(JSON.stringify(home).includes("/search?q="));
assert.ok(!JSON.stringify(home).includes("/suche"));
assert.ok(publisherSchema().sameAs.includes("https://www.youtube.com/@folxmtv"));
const pub = "2026-01-01T12:00:00.000Z";
assert.equal(articleModifiedTime("", pub), pub);
assert.equal(articleModifiedTime("<!--folx-updated:invalid-->", pub), pub);
assert.equal(articleModifiedTime("<!--folx-updated:2025-01-01-->", pub), pub);
assert.equal(articleModifiedTime("<!--folx-updated:2099-01-01-->", pub), pub);
assert.equal(articleModifiedTime("<!--folx-updated:2026-02-01-->", pub), "2026-02-01T00:00:00.000Z");
assert.equal(articleGenre("<!--folx-badge:STAR NEWS-->").section, "Star News");
assert.ok(!articleGenre("<!--folx-badge:STAR NEWS-->").words.includes("Schlager"));
assert.equal(articleGenre("").section, "Musik News");
assert.equal(INFO_SEO["/ueber-uns"].type, "AboutPage");
assert.equal(INFO_SEO["/kontakt"].type, "ContactPage");
console.log("SEO metadata checks passed");