21 lines
1.3 KiB
TypeScript
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");
|