feat: add canonical human-key resource routes

This commit is contained in:
2026-08-20 02:17:21 +09:00
parent 1ca36d6b66
commit a96038d79f
14 changed files with 230 additions and 23 deletions
@@ -0,0 +1,26 @@
// @ts-nocheck
import {
canonicalResourceReference,
resourceHumanKey,
slugifyResourceTitle,
} from "../src/lib/workspace/resource-links.ts";
function assertEquals(actual: unknown, expected: unknown): void {
if (actual !== expected) {
throw new Error(`expected ${String(expected)}, received ${String(actual)}`);
}
}
Deno.test("resource links normalize titles and preserve the human key", () => {
assertEquals(slugifyResourceTitle(" Fix stale URL / 日本語 "), "fix-stale-url-日本語");
assertEquals(
canonicalResourceReference("T-1842", "Fix stale URL / 日本語"),
"T-1842-fix-stale-url-日本語",
);
assertEquals(resourceHumanKey("T-1842-fix-stale-url-日本語"), "T-1842");
});
Deno.test("resource links use a deterministic fallback for punctuation-only titles", () => {
assertEquals(canonicalResourceReference("O-7", "---"), "O-7-resource");
assertEquals(resourceHumanKey("01a017internal"), "01a017internal");
});