This release is 23 versions behind 1.4.9 — the latest version of @fedify/fedify. Jump to latest
Built and signed on GitHub ActionsBuilt and signed on GitHub Actions
Built and signed on GitHub Actions
An ActivityPub/fediverse server framework
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990import { assertEquals } from "jsr:/@std/assert@^0.226.0/assert-equals"; import { assertThrows } from "jsr:/@std/assert@^0.226.0/assert-throws"; import { test } from "../testing/mod.ts"; import { Activity, Create, Invite, Offer, Update } from "../vocab/vocab.ts"; import { InboxListenerSet } from "./inbox.ts"; test("InboxListenerSet", () => { const listeners = new InboxListenerSet<void>(); 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.", ); });