chore: Treat internal event differently, primarely do not display info logs for those events (#8767)
* chore: Treat internal event differently, primarely do not display info log for those events * revert doc * add few tests * only set internal option if present * revert to previous condition * start including feedback after discussion * include feedback * fix modules integration tests * fix modules integration tests * fix event bus local
This commit is contained in:
@@ -39,6 +39,49 @@ describe("LocalEventBusService", () => {
|
||||
data: { hi: "1234" },
|
||||
name: "eventName",
|
||||
})
|
||||
|
||||
expect(loggerMock.info).toHaveBeenCalledTimes(1)
|
||||
expect(loggerMock.info).toHaveBeenCalledWith(
|
||||
"Processing eventName which has undefined subscribers"
|
||||
)
|
||||
})
|
||||
|
||||
it("should emit an event but not log anything if it is internal", async () => {
|
||||
eventEmitter.emit = jest.fn((data) => data)
|
||||
|
||||
await eventBus.emit({
|
||||
name: "eventName",
|
||||
data: { hi: "1234" },
|
||||
options: {
|
||||
internal: true,
|
||||
},
|
||||
})
|
||||
|
||||
expect(eventEmitter.emit).toHaveBeenCalledTimes(1)
|
||||
expect(eventEmitter.emit).toHaveBeenCalledWith("eventName", {
|
||||
data: { hi: "1234" },
|
||||
name: "eventName",
|
||||
})
|
||||
|
||||
expect(loggerMock.info).toHaveBeenCalledTimes(0)
|
||||
|
||||
await eventBus.emit(
|
||||
{
|
||||
name: "eventName",
|
||||
data: { hi: "1234" },
|
||||
},
|
||||
{
|
||||
internal: true,
|
||||
}
|
||||
)
|
||||
|
||||
expect(eventEmitter.emit).toHaveBeenCalledTimes(2)
|
||||
expect(eventEmitter.emit).toHaveBeenCalledWith("eventName", {
|
||||
data: { hi: "1234" },
|
||||
name: "eventName",
|
||||
})
|
||||
|
||||
expect(loggerMock.info).toHaveBeenCalledTimes(0)
|
||||
})
|
||||
|
||||
it("should emit multiple events", async () => {
|
||||
@@ -87,7 +130,7 @@ describe("LocalEventBusService", () => {
|
||||
groupEventFn = jest.spyOn(eventBus, "groupEvent" as any)
|
||||
eventEmitter.emit = jest.fn((data) => data)
|
||||
|
||||
eventBus.emit([
|
||||
await eventBus.emit([
|
||||
{
|
||||
name: "test-event",
|
||||
data: { test: "1234" },
|
||||
@@ -201,12 +244,12 @@ describe("LocalEventBusService", () => {
|
||||
expect(getMap().get("group-1")).toHaveLength(1)
|
||||
expect(getMap().get("group-2")).toHaveLength(1)
|
||||
|
||||
eventBus.clearGroupedEvents("group-1")
|
||||
await eventBus.clearGroupedEvents("group-1")
|
||||
|
||||
expect(getMap().get("group-1")).not.toBeDefined()
|
||||
expect(getMap().get("group-2")).toHaveLength(1)
|
||||
|
||||
eventBus.clearGroupedEvents("group-2")
|
||||
await eventBus.clearGroupedEvents("group-2")
|
||||
|
||||
expect(getMap().get("group-2")).not.toBeDefined()
|
||||
})
|
||||
|
||||
@@ -35,6 +35,12 @@ export default class LocalEventBusService extends AbstractEventBusModuleService
|
||||
this.groupedEventsMap_ = new Map()
|
||||
}
|
||||
|
||||
/**
|
||||
* Accept an event name and some options
|
||||
*
|
||||
* @param eventsData
|
||||
* @param options The options can include `internal` which will prevent the event from being logged
|
||||
*/
|
||||
async emit<T = unknown>(
|
||||
eventsData: Message<T> | Message<T>[],
|
||||
options: Record<string, unknown> = {}
|
||||
@@ -48,9 +54,11 @@ export default class LocalEventBusService extends AbstractEventBusModuleService
|
||||
eventData.name
|
||||
)
|
||||
|
||||
this.logger_?.info(
|
||||
`Processing ${eventData.name} which has ${eventListenersCount} subscribers`
|
||||
)
|
||||
if (!options.internal && !eventData.options?.internal) {
|
||||
this.logger_?.info(
|
||||
`Processing ${eventData.name} which has ${eventListenersCount} subscribers`
|
||||
)
|
||||
}
|
||||
|
||||
if (eventListenersCount === 0) {
|
||||
continue
|
||||
@@ -98,7 +106,7 @@ export default class LocalEventBusService extends AbstractEventBusModuleService
|
||||
this.eventEmitter_.emit(event.name, eventBody)
|
||||
}
|
||||
|
||||
this.clearGroupedEvents(eventGroupId)
|
||||
await this.clearGroupedEvents(eventGroupId)
|
||||
}
|
||||
|
||||
async clearGroupedEvents(eventGroupId: string) {
|
||||
|
||||
Reference in New Issue
Block a user