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 05:29:18 -03:00
committed by GitHub
parent 09dec65430
commit 2869763ea9
4 changed files with 87 additions and 39 deletions

View File

@@ -0,0 +1,5 @@
---
"@medusajs/medusa": patch
---
Fix eventBus.emit using redis mock

3
.gitignore vendored
View File

@@ -19,4 +19,5 @@ www/**/.yarn/*
.idea
.turbo
build/**
build/**
**/dist

View File

@@ -24,11 +24,18 @@ describe("EventBusService", () => {
find: () => Promise.resolve([]),
})
eventBus = new EventBusService({
manager: MockManager,
stagedJobRepository,
logger: loggerMock,
})
eventBus = new EventBusService(
{
manager: MockManager,
stagedJobRepository,
logger: loggerMock,
},
{
projectConfig: {
redis_url: "localhost",
},
}
)
})
afterAll(async () => {
@@ -49,10 +56,17 @@ describe("EventBusService", () => {
beforeEach(() => {
jest.resetAllMocks()
eventBus = new EventBusService({
manager: MockManager,
logger: loggerMock,
})
eventBus = new EventBusService(
{
manager: MockManager,
logger: loggerMock,
},
{
projectConfig: {
redis_url: "localhost",
},
}
)
})
afterAll(async () => {
@@ -135,11 +149,18 @@ describe("EventBusService", () => {
create: (data) => data,
})
eventBus = new EventBusService({
logger: loggerMock,
manager: mockManager,
stagedJobRepository,
})
eventBus = new EventBusService(
{
logger: loggerMock,
manager: mockManager,
stagedJobRepository,
},
{
projectConfig: {
redis_url: "localhost",
},
}
)
eventBus.queue_.addBulk.mockImplementationOnce(() => "hi")
})
@@ -195,11 +216,18 @@ describe("EventBusService", () => {
create: (data) => data,
})
eventBus = new EventBusService({
logger: loggerMock,
manager: mockManager,
stagedJobRepository,
})
eventBus = new EventBusService(
{
logger: loggerMock,
manager: mockManager,
stagedJobRepository,
},
{
projectConfig: {
redis_url: "localhost",
},
}
)
eventBus.queue_.addBulk.mockImplementationOnce(() => "hi")
})
@@ -285,7 +313,10 @@ describe("EventBusService", () => {
stagedJobRepository,
},
{
projectConfig: { event_options: { removeOnComplete: 10 } },
projectConfig: {
event_options: { removeOnComplete: 10 },
redis_url: "localhost",
},
}
)
@@ -323,11 +354,18 @@ describe("EventBusService", () => {
create: (data) => data,
})
eventBus = new EventBusService({
logger: loggerMock,
manager: mockManager,
stagedJobRepository,
})
eventBus = new EventBusService(
{
logger: loggerMock,
manager: mockManager,
stagedJobRepository,
},
{
projectConfig: {
redis_url: "localhost",
},
}
)
eventBus.queue_.addBulk.mockImplementationOnce(() => "hi")
@@ -370,7 +408,10 @@ describe("EventBusService", () => {
stagedJobRepository,
},
{
projectConfig: { event_options: { removeOnComplete: 10 } },
projectConfig: {
event_options: { removeOnComplete: 10 },
redis_url: "localhost",
},
}
)
@@ -418,14 +459,11 @@ describe("EventBusService", () => {
find: () => Promise.resolve([]),
})
eventBus = new EventBusService(
{
manager: MockManager,
stagedJobRepository,
logger: loggerMock,
},
{}
)
eventBus = new EventBusService({
manager: MockManager,
stagedJobRepository,
logger: loggerMock,
})
eventBus.subscribe("eventName", () => Promise.resolve("hi"))
result = await eventBus.worker_({
data: { eventName: "eventName", data: {} },

View File

@@ -308,7 +308,9 @@ export default class EventBusService {
return (!isBulkEmit ? stagedJobs[0] : stagedJobs) as unknown as TResult
}
await this.queue_.addBulk(events)
if (this.config_?.projectConfig?.redis_url) {
await this.queue_.addBulk(events)
}
}
startEnqueuer(): void {
@@ -346,9 +348,11 @@ export default class EventBusService {
}
})
await this.queue_.addBulk(eventsData).then(async () => {
return await stagedJobRepo.delete({ id: In(jobs.map((j) => j.id)) })
})
if (this.config_?.projectConfig?.redis_url) {
await this.queue_.addBulk(eventsData).then(async () => {
return await stagedJobRepo.delete({ id: In(jobs.map((j) => j.id)) })
})
}
await sleep(3000)
}