Files
medusa-store/packages/modules/event-bus-redis/integration-tests/__tests__/index.spec.ts
Adrien de Peretti fc49253273 feat(core, event-bus): Compensate emit event step utility (#13281)
* feat(core, event-bus): Compensate emit event step utility

* tests

* Update changeset to remove integration-tests-modules

Removed integration-tests-modules from changeset.

* revert test script
2025-08-25 15:08:09 +02:00

148 lines
3.6 KiB
TypeScript

import {
CommonEvents,
composeMessage,
Modules,
} from "@medusajs/framework/utils"
import { moduleIntegrationTestRunner } from "@medusajs/test-utils"
import { IEventBusModuleService } from "@medusajs/types"
moduleIntegrationTestRunner<IEventBusModuleService>({
moduleName: Modules.EVENT_BUS,
moduleOptions: {
redis: {
host: "localhost",
port: 6379,
},
},
testSuite: ({ service: eventBus }) => {
describe("Event Bus Redis Service", () => {
it("should emit an event", async () => {
const subscriber = jest.fn()
eventBus.subscribe("test", subscriber)
await eventBus.emit(
composeMessage("test", {
data: {
test: "test",
},
action: CommonEvents.CREATED,
source: "test",
object: "test",
})
)
expect(subscriber).toHaveBeenCalledWith({
data: {
test: "test",
},
metadata: {
source: "test",
object: "test",
action: "created",
},
name: "test",
})
eventBus.unsubscribe("test", subscriber)
})
it("should release grouped events", async () => {
const subscriber = jest.fn()
eventBus.subscribe("test", subscriber)
await eventBus.emit(
composeMessage("test", {
data: {
test: "test",
},
context: {
eventGroupId: "123",
},
action: CommonEvents.CREATED,
source: "test",
object: "test",
})
)
expect(subscriber).toHaveBeenCalledTimes(0)
await eventBus.releaseGroupedEvents("123")
expect(subscriber).toHaveBeenCalledTimes(1)
expect(subscriber).toHaveBeenCalledWith({
data: {
test: "test",
},
metadata: {
source: "test",
eventGroupId: "123",
object: "test",
action: "created",
},
name: "test",
})
eventBus.unsubscribe("test", subscriber)
})
it("should clear grouped events", async () => {
const subscriber = jest.fn()
eventBus.subscribe("test", subscriber)
await eventBus.emit(
composeMessage("test", {
data: {
test: "test",
},
context: {
eventGroupId: "123",
},
action: CommonEvents.CREATED,
source: "test",
object: "test",
})
)
expect(subscriber).toHaveBeenCalledTimes(0)
await eventBus.clearGroupedEvents("123")
await eventBus.releaseGroupedEvents("123")
expect(subscriber).toHaveBeenCalledTimes(0)
eventBus.unsubscribe("test", subscriber)
})
it("should clear grouped events with event names", async () => {
const subscriber = jest.fn()
eventBus.subscribe("test", subscriber)
await eventBus.emit(
composeMessage("test", {
data: {
test: "test",
},
context: {
eventGroupId: "123",
},
action: CommonEvents.CREATED,
source: "test",
object: "test",
})
)
await eventBus.clearGroupedEvents("123", {
eventNames: ["test"],
})
await eventBus.releaseGroupedEvents("123")
expect(subscriber).toHaveBeenCalledTimes(0)
eventBus.unsubscribe("test", subscriber)
})
})
},
})