fix(medusa): EventBusService.emit using Redis mock (#3491)

* Fix eventBusService.emit using redis mock

* revert gitignore

* enqueuer

* unit test add redis_url

* fix test
This commit is contained in:
Carlos R. L. Rodrigues
2023-03-16 09:29:18 +01:00
committed by GitHub
parent 09dec65430
commit 2869763ea9
4 changed files with 87 additions and 39 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@medusajs/medusa": patch
---
Fix eventBus.emit using redis mock
+1
View File
@@ -20,3 +20,4 @@ www/**/.yarn/*
.idea .idea
.turbo .turbo
build/** build/**
**/dist
@@ -24,11 +24,18 @@ describe("EventBusService", () => {
find: () => Promise.resolve([]), find: () => Promise.resolve([]),
}) })
eventBus = new EventBusService({ eventBus = new EventBusService(
{
manager: MockManager, manager: MockManager,
stagedJobRepository, stagedJobRepository,
logger: loggerMock, logger: loggerMock,
}) },
{
projectConfig: {
redis_url: "localhost",
},
}
)
}) })
afterAll(async () => { afterAll(async () => {
@@ -49,10 +56,17 @@ describe("EventBusService", () => {
beforeEach(() => { beforeEach(() => {
jest.resetAllMocks() jest.resetAllMocks()
eventBus = new EventBusService({ eventBus = new EventBusService(
{
manager: MockManager, manager: MockManager,
logger: loggerMock, logger: loggerMock,
}) },
{
projectConfig: {
redis_url: "localhost",
},
}
)
}) })
afterAll(async () => { afterAll(async () => {
@@ -135,11 +149,18 @@ describe("EventBusService", () => {
create: (data) => data, create: (data) => data,
}) })
eventBus = new EventBusService({ eventBus = new EventBusService(
{
logger: loggerMock, logger: loggerMock,
manager: mockManager, manager: mockManager,
stagedJobRepository, stagedJobRepository,
}) },
{
projectConfig: {
redis_url: "localhost",
},
}
)
eventBus.queue_.addBulk.mockImplementationOnce(() => "hi") eventBus.queue_.addBulk.mockImplementationOnce(() => "hi")
}) })
@@ -195,11 +216,18 @@ describe("EventBusService", () => {
create: (data) => data, create: (data) => data,
}) })
eventBus = new EventBusService({ eventBus = new EventBusService(
{
logger: loggerMock, logger: loggerMock,
manager: mockManager, manager: mockManager,
stagedJobRepository, stagedJobRepository,
}) },
{
projectConfig: {
redis_url: "localhost",
},
}
)
eventBus.queue_.addBulk.mockImplementationOnce(() => "hi") eventBus.queue_.addBulk.mockImplementationOnce(() => "hi")
}) })
@@ -285,7 +313,10 @@ describe("EventBusService", () => {
stagedJobRepository, stagedJobRepository,
}, },
{ {
projectConfig: { event_options: { removeOnComplete: 10 } }, projectConfig: {
event_options: { removeOnComplete: 10 },
redis_url: "localhost",
},
} }
) )
@@ -323,11 +354,18 @@ describe("EventBusService", () => {
create: (data) => data, create: (data) => data,
}) })
eventBus = new EventBusService({ eventBus = new EventBusService(
{
logger: loggerMock, logger: loggerMock,
manager: mockManager, manager: mockManager,
stagedJobRepository, stagedJobRepository,
}) },
{
projectConfig: {
redis_url: "localhost",
},
}
)
eventBus.queue_.addBulk.mockImplementationOnce(() => "hi") eventBus.queue_.addBulk.mockImplementationOnce(() => "hi")
@@ -370,7 +408,10 @@ describe("EventBusService", () => {
stagedJobRepository, stagedJobRepository,
}, },
{ {
projectConfig: { event_options: { removeOnComplete: 10 } }, projectConfig: {
event_options: { removeOnComplete: 10 },
redis_url: "localhost",
},
} }
) )
@@ -418,14 +459,11 @@ describe("EventBusService", () => {
find: () => Promise.resolve([]), find: () => Promise.resolve([]),
}) })
eventBus = new EventBusService( eventBus = new EventBusService({
{
manager: MockManager, manager: MockManager,
stagedJobRepository, stagedJobRepository,
logger: loggerMock, logger: loggerMock,
}, })
{}
)
eventBus.subscribe("eventName", () => Promise.resolve("hi")) eventBus.subscribe("eventName", () => Promise.resolve("hi"))
result = await eventBus.worker_({ result = await eventBus.worker_({
data: { eventName: "eventName", data: {} }, data: { eventName: "eventName", data: {} },
@@ -308,8 +308,10 @@ export default class EventBusService {
return (!isBulkEmit ? stagedJobs[0] : stagedJobs) as unknown as TResult return (!isBulkEmit ? stagedJobs[0] : stagedJobs) as unknown as TResult
} }
if (this.config_?.projectConfig?.redis_url) {
await this.queue_.addBulk(events) await this.queue_.addBulk(events)
} }
}
startEnqueuer(): void { startEnqueuer(): void {
this.shouldEnqueuerRun = true this.shouldEnqueuerRun = true
@@ -346,9 +348,11 @@ export default class EventBusService {
} }
}) })
if (this.config_?.projectConfig?.redis_url) {
await this.queue_.addBulk(eventsData).then(async () => { await this.queue_.addBulk(eventsData).then(async () => {
return await stagedJobRepo.delete({ id: In(jobs.map((j) => j.id)) }) return await stagedJobRepo.delete({ id: In(jobs.map((j) => j.id)) })
}) })
}
await sleep(3000) await sleep(3000)
} }