testPdsEndpointsAreOrigins
tcmts.atproto.test.testPdsEndpointsAreOrigins · #5z6nh7jz · term
import { isDid, pdsOf } from "#codebase/tcmts/atproto";
import assert from "node:assert/strict";
export const testPdsEndpointsAreOrigins = () => {
const doc = (serviceEndpoint: string) => ({
id: "did:plc:x",
service: [{ id: "#atproto_pds", type: "AtprotoPersonalDataServer", serviceEndpoint }],
});
const was = process.env.TCM_ATPROTO_LOCAL;
delete process.env.TCM_ATPROTO_LOCAL;
try {
assert.equal(pdsOf(doc("https://pds.example/"), "did:plc:x"), "https://pds.example");
for (const bad of [
"http://pds.example",
"https://pds.example/admin?",
"https://pds.example/#",
"https://pds.example?x=1",
"https://a:b@pds.example",
"javascript:alert(1)",
])
assert.throws(() => pdsOf(doc(bad), "did:plc:x"), /must be/, bad);
assert.ok(isDid("did:plc:ewvi7nxzyoun6zhxrhs64oiz") && isDid("did:web:example.com%3A8443"));
for (const bad of [
"did:plc:real/codes.tcm.star/k/junk",
"did:plc:",
"did:web:a.com?x",
"plc:x",
"did:plc:x#y",
])
assert.ok(!isDid(bad), bad);
} finally {
if (was !== undefined) process.env.TCM_ATPROTO_LOCAL = was;
}
}
uses