UNPKG

@fedify/fedify

Version:

An ActivityPub server framework

87 lines (86 loc) 3.12 kB
import "@js-temporal/polyfill"; import "urlpattern-polyfill"; globalThis.addEventListener = () => {}; import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs"; import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs"; import { t as ActivityListenerSet } from "../activity-listener-ell7W1s9.mjs"; import { test } from "@fedify/fixture"; import { Activity, Create, Invite, Offer, Update } from "@fedify/vocab"; //#region src/federation/inbox.test.ts test("ActivityListenerSet", () => { const listeners = new ActivityListenerSet(); const activity = new Activity({}); const offer = new Offer({}); const invite = new Invite({}); const create = new Create({}); const update = new Update({}); assertEquals(listeners.dispatch(activity), null); assertEquals(listeners.dispatch(offer), null); assertEquals(listeners.dispatch(invite), null); assertEquals(listeners.dispatch(create), null); assertEquals(listeners.dispatch(update), null); const listenOffer = () => {}; listeners.add(Offer, listenOffer); assertEquals(listeners.dispatch(activity), null); assertEquals(listeners.dispatchWithClass(offer), { class: Offer, listener: listenOffer }); assertEquals(listeners.dispatch(offer), listenOffer); assertEquals(listeners.dispatchWithClass(invite), { class: Offer, listener: listenOffer }); assertEquals(listeners.dispatch(invite), listenOffer); assertEquals(listeners.dispatch(create), null); assertEquals(listeners.dispatch(update), null); const listenCreate = () => {}; listeners.add(Create, listenCreate); assertEquals(listeners.dispatch(activity), null); assertEquals(listeners.dispatch(offer), listenOffer); assertEquals(listeners.dispatchWithClass(offer), { class: Offer, listener: listenOffer }); assertEquals(listeners.dispatch(invite), listenOffer); assertEquals(listeners.dispatchWithClass(invite), { class: Offer, listener: listenOffer }); assertEquals(listeners.dispatch(create), listenCreate); assertEquals(listeners.dispatchWithClass(create), { class: Create, listener: listenCreate }); assertEquals(listeners.dispatch(update), null); const listenActivity = () => {}; listeners.add(Activity, listenActivity); assertEquals(listeners.dispatch(activity), listenActivity); assertEquals(listeners.dispatchWithClass(activity), { class: Activity, listener: listenActivity }); assertEquals(listeners.dispatch(offer), listenOffer); assertEquals(listeners.dispatchWithClass(offer), { class: Offer, listener: listenOffer }); assertEquals(listeners.dispatch(invite), listenOffer); assertEquals(listeners.dispatchWithClass(invite), { class: Offer, listener: listenOffer }); assertEquals(listeners.dispatch(create), listenCreate); assertEquals(listeners.dispatchWithClass(create), { class: Create, listener: listenCreate }); assertEquals(listeners.dispatch(update), listenActivity); assertEquals(listeners.dispatchWithClass(update), { class: Activity, listener: listenActivity }); assertThrows(() => listeners.add(Activity, listenActivity), TypeError, "Listener already set for this type."); }); //#endregion export {};