chore: ability to group events on redis event bus (#7655)

* chore: ability to group events on redis event bus

* chore: fix tests

* Update packages/modules/event-bus-redis/src/services/event-bus-redis.ts

Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>

* chore: change shape of input and body data

* chore: fix builds

* chore: address comments

* chore: fix unit test

---------

Co-authored-by: Adrien de Peretti <adrien.deperetti@gmail.com>
This commit is contained in:
Riqwan Thamir
2024-06-10 22:15:43 +02:00
committed by GitHub
co-authored by Adrien de Peretti
parent 3b8160b564
commit 39ddba2491
24 changed files with 924 additions and 732 deletions
@@ -1,5 +1,4 @@
import {
EmitData,
EventBusTypes,
IEventBusModuleService,
Message,
@@ -7,24 +6,9 @@ import {
} from "@medusajs/types"
export default class EventBusService implements IEventBusModuleService {
emit<T>(
eventName: string,
data: T,
options?: Record<string, unknown>
): Promise<void>
emit<T>(data: EmitData<T>[]): Promise<void>
emit<T>(data: Message<T>[]): Promise<void>
async emit<
T,
TInput extends
| string
| EventBusTypes.EmitData<T>[]
| EventBusTypes.Message<T>[] = string
>(
eventOrData: TInput,
data?: T,
options: Record<string, unknown> = {}
async emit<T>(
data: Message<T> | Message<T>[],
options: Record<string, unknown>
): Promise<void> {}
subscribe(event: string | symbol, subscriber: Subscriber): this {
@@ -1,8 +1,8 @@
import { initModules, InitModulesOptions } from "./init-modules"
import { getDatabaseURL, getMikroOrmWrapper, TestDatabase } from "./database"
import { initModules, InitModulesOptions } from "./init-modules"
import { MockEventBusService } from "."
import { ContainerRegistrationKeys, ModulesSdkUtils } from "@medusajs/utils"
import { MockEventBusService } from "."
export interface SuiteOptions<TService = unknown> {
MikroOrmWrapper: TestDatabase
@@ -75,7 +75,7 @@ export function moduleIntegrationTestRunner<TService = any>({
const moduleOptions_: InitModulesOptions = {
injectedDependencies: {
[ContainerRegistrationKeys.PG_CONNECTION]: connection,
["eventBusModuleService"]: new MockEventBusService(),
eventBusModuleService: new MockEventBusService(),
[ContainerRegistrationKeys.LOGGER]: console,
...injectedDependencies,
},