mirror of
https://github.com/strapi/strapi.git
synced 2025-12-02 18:13:16 +00:00
Merge remote-tracking branch 'origin/feature/audit-logs' into audit-logs/service
This commit is contained in:
commit
bdda90ebf6
@ -95,4 +95,24 @@ describe('Event Hub', () => {
|
||||
expect(fn).toHaveBeenCalledTimes(1);
|
||||
expect(fn2).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('removes all subscribers on removeAllListeners()', async () => {
|
||||
const { subscribe, on, emit, removeAllListeners } = createEventHub();
|
||||
|
||||
const fn = jest.fn();
|
||||
const fn2 = jest.fn();
|
||||
subscribe(fn);
|
||||
on('my-event', fn2);
|
||||
|
||||
await emit('my-event');
|
||||
expect(fn).toHaveBeenCalled();
|
||||
expect(fn2).toHaveBeenCalled();
|
||||
|
||||
removeAllListeners();
|
||||
|
||||
// Subscribers are removed
|
||||
await emit('my-event');
|
||||
expect(fn).toHaveBeenCalledTimes(1);
|
||||
expect(fn2).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
@ -72,6 +72,7 @@ module.exports = function createEventHub() {
|
||||
return {
|
||||
...eventHub,
|
||||
removeListener: eventHub.off,
|
||||
removeAllListeners: eventHub.destroy,
|
||||
addListener: eventHub.on,
|
||||
};
|
||||
};
|
||||
|
||||
@ -32,18 +32,14 @@ class WebhookRunner {
|
||||
|
||||
this.queue = new WorkerQueue({ logger, concurrency: 5 });
|
||||
this.queue.subscribe(this.executeListener.bind(this));
|
||||
|
||||
strapi.eventHub.subscribe((eventName, ...args) => {
|
||||
if (this.listeners.has(eventName)) {
|
||||
const listener = this.listeners.get(eventName);
|
||||
listener(...args);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
deleteListener(event) {
|
||||
debug(`Deleting listener for event '${event}'`);
|
||||
if (this.listeners.has(event)) {
|
||||
const fn = this.listeners.get(event);
|
||||
|
||||
this.eventHub.off(event, fn);
|
||||
this.listeners.delete(event);
|
||||
}
|
||||
}
|
||||
@ -61,6 +57,7 @@ class WebhookRunner {
|
||||
};
|
||||
|
||||
this.listeners.set(event, listen);
|
||||
this.eventHub.on(event, listen);
|
||||
}
|
||||
|
||||
async executeListener({ event, info }) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user