refactoring
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
import {
|
||||
newPageReference,
|
||||
pageReference,
|
||||
slugTitle,
|
||||
splitPageReference,
|
||||
wikiWordTarget
|
||||
} from "../static/js/wiki/reference.js";
|
||||
|
||||
test("wiki references preserve root and namespace syntax", () => {
|
||||
assert.deepEqual(splitPageReference("roadmap"), { namespace: "", slug: "roadmap" });
|
||||
assert.deepEqual(splitPageReference("racket:roadmap"), {
|
||||
namespace: "racket",
|
||||
slug: "roadmap"
|
||||
});
|
||||
assert.equal(pageReference("", "roadmap"), "roadmap");
|
||||
assert.equal(pageReference(" racket ", "roadmap"), "racket:roadmap");
|
||||
});
|
||||
|
||||
test("freely entered page names become bounded wiki references", () => {
|
||||
assert.equal(newPageReference("Racket:Résumé pagina"), "racket:resume-pagina");
|
||||
assert.equal(newPageReference(" Nieuwe pagina "), "nieuwe-pagina");
|
||||
assert.equal(newPageReference(""), null);
|
||||
assert.equal(newPageReference(":"), null);
|
||||
});
|
||||
|
||||
test("WikiWords resolve to existing aliases or predictable new targets", () => {
|
||||
const aliases = new Map([
|
||||
[":homeopathiewiki", { slug: "homeopathie", title: "Homeopathie Wiki" }]
|
||||
]);
|
||||
assert.deepEqual(wikiWordTarget("HomeopathieWiki", aliases), {
|
||||
slug: "homeopathie",
|
||||
title: "Homeopathie Wiki"
|
||||
});
|
||||
assert.deepEqual(wikiWordTarget("NieuwePagina", aliases, "notes"), {
|
||||
slug: "notes:nieuwe-pagina",
|
||||
title: "Nieuwe Pagina"
|
||||
});
|
||||
assert.equal(wikiWordTarget("geen-wikiword", aliases), null);
|
||||
assert.equal(slugTitle("notes:nieuwe-pagina"), "Nieuwe Pagina");
|
||||
});
|
||||
Reference in New Issue
Block a user