mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-02 07:01:30 -08:00
75 lines
1.6 KiB
TypeScript
75 lines
1.6 KiB
TypeScript
import { createEventBus } from './event-bus';
|
|
|
|
describe('createEventBus()', () => {
|
|
const eventBus = createEventBus();
|
|
|
|
describe('on()', () => {
|
|
it('should register event handler', () => {
|
|
const handler = vi.fn();
|
|
const eventName = 'test';
|
|
|
|
eventBus.on(eventName, handler);
|
|
|
|
eventBus.emit(eventName, {});
|
|
|
|
expect(handler).toHaveBeenCalled();
|
|
});
|
|
});
|
|
|
|
describe('once()', () => {
|
|
it('should register event handler', () => {
|
|
const handler = vi.fn();
|
|
const eventName = 'test';
|
|
|
|
eventBus.once(eventName, handler);
|
|
|
|
eventBus.emit(eventName, {});
|
|
|
|
expect(handler).toHaveBeenCalled();
|
|
});
|
|
|
|
it('should unregister event handler after first call', () => {
|
|
const handler = vi.fn();
|
|
const eventName = 'test';
|
|
|
|
eventBus.once(eventName, handler);
|
|
|
|
eventBus.emit(eventName, {});
|
|
eventBus.emit(eventName, {});
|
|
|
|
expect(handler).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|
|
|
|
describe('off()', () => {
|
|
it('should register event handler', () => {
|
|
const handler = vi.fn();
|
|
const eventName = 'test';
|
|
|
|
eventBus.on(eventName, handler);
|
|
eventBus.off(eventName, handler);
|
|
|
|
eventBus.emit(eventName, {});
|
|
|
|
expect(handler).not.toHaveBeenCalled();
|
|
});
|
|
});
|
|
|
|
describe('emit()', () => {
|
|
it('should call handlers with given event', () => {
|
|
const handlerA = vi.fn();
|
|
const handlerB = vi.fn();
|
|
const eventName = 'test';
|
|
const event = new Event(eventName);
|
|
|
|
eventBus.on(eventName, handlerA);
|
|
eventBus.on(eventName, handlerB);
|
|
|
|
eventBus.emit(eventName, event);
|
|
|
|
expect(handlerA).toHaveBeenCalledWith(event);
|
|
expect(handlerB).toHaveBeenCalledWith(event);
|
|
});
|
|
});
|
|
});
|