* 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
148 lines
3.6 KiB
TypeScript
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)
|
|
})
|
|
})
|
|
},
|
|
})
|