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:
Adrien de Peretti
2024-08-28 16:46:40 +02:00
committed by GitHub
parent 6cfe9bd874
commit 5bec38538a
27 changed files with 915 additions and 465 deletions
@@ -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) {