UNPKG

@fedify/fedify

Version:

An ActivityPub server framework

69 lines (65 loc) 2.53 kB
import { Temporal } from "@js-temporal/polyfill"; import { URLPattern } from "urlpattern-polyfill"; globalThis.addEventListener = () => {}; import { assertEquals } from "../assert_equals-CTYbeopb.js"; import "../assert-DmFG7ppO.js"; import "../assert_instance_of-CF09JHYM.js"; import "../docloader-C8mmLN-Y.js"; import { UrlError } from "../url-kTAI6_KP.js"; import "../multibase-DeCHcK8L.js"; import "../vocab-dDpPQ0fF.js"; import "../langstr-DbWheeIS.js"; import "../lookup-Ozuw-rxN.js"; import "../type-D2s5lmbZ.js"; import "../actor-BP-NTJ2m.js"; import "../key-CPSlDkCj.js"; import { verifyRequest } from "../http-BmfI6U39.js"; import { getAuthenticatedDocumentLoader } from "../authdocloader-Banw__l6.js"; import { test } from "../testing-BZ0dJ4qn.js"; import "../std__assert-vp0TKMS1.js"; import { assertRejects } from "../assert_rejects-C-sxEMM5.js"; import "../assert_is_error-nrwA1GeT.js"; import "../assert_not_equals-Dc7y-V5Q.js"; import "../assert_throws-Cn9C6Jur.js"; import { mockDocumentLoader } from "../docloader-09nVWLAZ.js"; import { rsaPrivateKey2 } from "../keys-CtFc865v.js"; import { esm_default } from "../esm-Db4De7AS.js"; //#region runtime/authdocloader.test.ts test("getAuthenticatedDocumentLoader()", async (t) => { esm_default.spyGlobal(); esm_default.get("begin:https://example.com/object", async (cl) => { const v = await verifyRequest(cl.request, { documentLoader: mockDocumentLoader, contextLoader: mockDocumentLoader, currentTime: Temporal.Now.instant() }); return new Response(JSON.stringify(v != null), { headers: { "Content-Type": "application/json" } }); }); await t.step("test", async () => { const loader = await getAuthenticatedDocumentLoader({ keyId: new URL("https://example.com/key2"), privateKey: rsaPrivateKey2 }); assertEquals(await loader("https://example.com/object"), { contextUrl: null, documentUrl: "https://example.com/object", document: true }); }); esm_default.hardReset(); await t.step("deny non-HTTP/HTTPS", async () => { const loader = await getAuthenticatedDocumentLoader({ keyId: new URL("https://example.com/key2"), privateKey: rsaPrivateKey2 }); assertRejects(() => loader("ftp://localhost"), UrlError); }); await t.step("deny private network", async () => { const loader = await getAuthenticatedDocumentLoader({ keyId: new URL("https://example.com/key2"), privateKey: rsaPrivateKey2 }); assertRejects(() => loader("http://localhost"), UrlError); }); }); //#endregion