testCodebaseRecordsAreRead

tcmts.records.test.testCodebaseRecordsAreRead · #xezcl32p · term

import { codebaseRecord, parseCodebaseRecord } from "#codebase/tcmts/records";

export const testCodebaseRecordsAreRead = () => {
  const good = codebaseRecord(
    { name: "notes", url: "https://code.alice.dev", description: "Notes." },
    "2026-11-04T00:00:00.000Z",
  );
  const r = parseCodebaseRecord("notes", good);
  if (JSON.stringify(r) !== JSON.stringify(good)) throw new Error(JSON.stringify(r));
  if (parseCodebaseRecord("notes", { ...good, description: undefined })?.description !== "")
    throw new Error("no description is an empty one");
  if (parseCodebaseRecord("other", good)) throw new Error("at another key");
  for (const name of ["", ".hidden", "a/b", "a b", "x".repeat(65)])
    if (parseCodebaseRecord(name, { ...good, name })) throw new Error(`named ${name}`);
  for (const url of ["file:///etc", "javascript:alert(1)", "https://", 3])
    if (parseCodebaseRecord("notes", { ...good, url })) throw new Error(`at ${url}`);
  if (parseCodebaseRecord("notes", { ...good, $type: "codes.tcm.release" }))
    throw new Error("another kind of record");
  if (parseCodebaseRecord("notes", null)) throw new Error("null");
}

uses