The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/packages/core-services/tests/ServiceClass.test.ts

60 lines
1.9 KiB

/* eslint-disable @typescript-eslint/no-empty-function */
import { ServiceClass } from '../src/types/ServiceClass';
describe('ServiceClass', () => {
describe('#onEvent()', () => {
it('should add one event to the internal event emitter instance', () => {
const instance = new (class extends ServiceClass {})();
instance.onEvent('test' as any, () => {});
expect(instance.getEvents()).toHaveLength(1);
expect(instance.getEvents()[0].eventName).toBe('test');
});
});
describe('#getEvents()', () => {
it('should return an array of events with all of their listeners', () => {
const instance = new (class extends ServiceClass {})();
const listener1 = () => {};
const listener2 = () => {};
const listener3 = () => {};
const listeners = [listener1, listener2, listener3];
instance.onEvent('test' as any, listener1);
instance.onEvent('test' as any, listener2);
instance.onEvent('test' as any, listener3);
expect(instance.getEvents()).toHaveLength(1);
expect(instance.getEvents()[0].listeners).toEqual(listeners);
});
});
describe('#removeAllListeners()', () => {
it('should remove all listeners', () => {
const instance = new (class extends ServiceClass {})();
const listener1 = () => {};
const listener2 = () => {};
const listener3 = () => {};
instance.onEvent('test' as any, listener1);
instance.onEvent('test' as any, listener2);
instance.onEvent('test' as any, listener3);
expect(instance.getEvents()).toHaveLength(1);
instance.removeAllListeners();
expect(instance.getEvents()).toHaveLength(0);
});
it('should not be possible to receive any event after remove them all', () => {
const instance = new (class extends ServiceClass {})();
const listener1 = jest.fn();
instance.onEvent('test' as any, listener1);
instance.emit('test' as any, 'test');
instance.removeAllListeners();
instance.emit('test' as any, 'test');
expect(listener1).toHaveBeenCalledTimes(1);
});
});
});