import { EventBusTypes, IEventBusModuleService, Message, Subscriber, } from "@medusajs/framework/types" export class EventBusServiceMock implements IEventBusModuleService { protected readonly subscribers_: Map> = new Map() async emit( messages: Message | Message[], options?: Record ): Promise { const messages_ = Array.isArray(messages) ? messages : [messages] for (const message of messages_) { const subscribers = this.subscribers_.get(message.name) for (const subscriber of subscribers ?? []) { const { options, ...payload } = message await subscriber(payload) } } } subscribe(event: string | symbol, subscriber: Subscriber): this { this.subscribers_.set(event, new Set([subscriber])) return this } unsubscribe( event: string | symbol, subscriber: Subscriber, context?: EventBusTypes.SubscriberContext ): this { return this } releaseGroupedEvents(eventGroupId: string): Promise { throw new Error("Method not implemented.") } clearGroupedEvents(eventGroupId: string): Promise { throw new Error("Method not implemented.") } }