15 lines
1.1 KiB
TypeScript
15 lines
1.1 KiB
TypeScript
import assert from "node:assert/strict"
|
|
import { test } from "node:test"
|
|
import { readCertificatesUrl, patchCertificatesUrl } from "./certificates-url-state"
|
|
test("invalid and duplicate context is rejected", () => {
|
|
for (const query of ["server=bad", "server=0", "server=-1", "server=1.5", "server=9007199254740992", "server=1&server=2", "status=bad", "status=valid&status=unknown", "q=a&q=b", "q=" + "x".repeat(201)]) assert.ok(readCertificatesUrl(new URLSearchParams(query)).error, query)
|
|
})
|
|
test("known context, mock identifier and empty defaults", () => {
|
|
assert.deepEqual(readCertificatesUrl(new URLSearchParams("server=2&status=unknown&q=test")), { server: "2", status: "unknown", search: "test", error: null })
|
|
assert.equal(readCertificatesUrl(new URLSearchParams("server=srv1")).error, null)
|
|
assert.deepEqual(readCertificatesUrl(new URLSearchParams()), { server: "all", status: "all", search: "", error: null })
|
|
})
|
|
test("patch preserves unrelated parameters and removes filters", () => {
|
|
assert.equal(patchCertificatesUrl(new URLSearchParams("server=1&status=valid&ref=map"), { server: null, status: null }), "/certificates?ref=map")
|
|
})
|