@fedify/fedify
Version:
An ActivityPub server framework
69 lines (65 loc) • 2.53 kB
JavaScript
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