feat: Replace new Vue() with custom event bus (no-changelog) (#5780)
* refactor: replace new Vue() with custom event bus (no-changelog) * fix: export types from design system main * fix: update component types * fix: update form inputs event bus
This commit is contained in:
62
packages/design-system/src/utils/__tests__/event-bus.spec.ts
Normal file
62
packages/design-system/src/utils/__tests__/event-bus.spec.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
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();
|
||||
});
|
||||
|
||||
it('should return unregister fn', () => {
|
||||
const handler = vi.fn();
|
||||
const eventName = 'test';
|
||||
|
||||
const unregister = eventBus.on(eventName, handler);
|
||||
|
||||
unregister();
|
||||
|
||||
eventBus.emit(eventName, {});
|
||||
|
||||
expect(handler).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
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);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user