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") })