12 lines
873 B
TypeScript
12 lines
873 B
TypeScript
import {test} from "node:test"
|
|
import assert from "node:assert/strict"
|
|
import {readNetworkMapUrl,patchNetworkMapUrl} from "./network-map-url-state"
|
|
test("map URL restores exact context and keeps unrelated parameters",()=>{
|
|
const state=readNetworkMapUrl(new URLSearchParams("server=srv1&wan=0&filter=unknown&q=site&dest=countries"))
|
|
assert.deepEqual(state,{server:"srv1",wan:0,filter:"unknown",search:"site",dest:"countries",error:null})
|
|
assert.equal(patchNetworkMapUrl(new URLSearchParams("tag=keep&server=1&wan=0"),{server:null,wan:null}),"/network-map?tag=keep")
|
|
})
|
|
test("map URL refuses duplicated, oversized and unknown context",()=>{
|
|
for(const query of ["server=1&server=2","q=x&q=y","filter=bad","dest=bad","wan=0","server=1&wan=-1","server=1&wan=99999","server=%20","q="+("x".repeat(257))])assert.ok(readNetworkMapUrl(new URLSearchParams(query)).error,query)
|
|
})
|