Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. 🫖 Status page with uptime monitoring & API monitoring as code 🫖 openstatus.dev
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import { describe, expect, test } from "vitest";
import { canonicalUrl, frontmatter } from "./frontmatter";
describe("canonicalUrl", () => { test("prefixes a site path with the production origin", () => { expect(canonicalUrl("/")).toBe("https://www.openstatus.dev/"); expect(canonicalUrl("/blog/post")).toBe( "https://www.openstatus.dev/blog/post", ); });
test("leaves an absolute url untouched", () => { expect(canonicalUrl("https://docs.openstatus.dev/x")).toBe( "https://docs.openstatus.dev/x", ); expect(canonicalUrl("http://localhost:3000/x")).toBe( "http://localhost:3000/x", ); });});
describe("frontmatter", () => { test("renders a fenced block with one quoted field per line, in order", () => { expect(frontmatter({ title: "T", url: "/u", description: "D" })).toBe( '---\ntitle: "T"\nurl: "/u"\ndescription: "D"\n---\n\n', ); });
test("drops undefined fields instead of printing them", () => { expect(frontmatter({ title: "T", updated: undefined, author: "A" })).toBe( '---\ntitle: "T"\nauthor: "A"\n---\n\n', ); });
test("escapes quotes, backslashes and newlines so the YAML stays valid", () => { const out = frontmatter({ title: 'Say "hi"\\now\nlater' }); expect(out).toBe('---\ntitle: "Say \\"hi\\"\\\\now\\nlater"\n---\n\n'); // One field is still one line. expect(out.split("\n")).toHaveLength(5); });
test("keeps a date-looking value as a string", () => { expect(frontmatter({ date: "Apr 07, 2026" })).toContain( 'date: "Apr 07, 2026"', ); });});