Files
OpenNoodl/packages/noodl-runtime/test/eventsender.test.js
Michael Cartner b9c60b07dc Initial commit
Co-Authored-By: Eric Tuvesson <eric.tuvesson@gmail.com>
Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com>
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com>
Co-Authored-By: Anders Larsson <64838990+anders-topp@users.noreply.github.com>
Co-Authored-By: Johan  <4934465+joolsus@users.noreply.github.com>
Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com>
Co-Authored-By: victoratndl <99176179+victoratndl@users.noreply.github.com>
2024-01-26 11:52:55 +01:00

62 lines
1.6 KiB
JavaScript

const EventSender = require('./eventsender');
describe('EventSender', ()=> {
let eventSender;
beforeEach(()=>{
eventSender = new EventSender();
});
it('can send events', ()=> {
const mockCallback = jest.fn(() => {});
eventSender.on('testEvent', mockCallback);
const someArgument = {lol:'troll'};
eventSender.emit('testEvent', someArgument);
expect(mockCallback.mock.calls.length).toBe(1);
expect(mockCallback.mock.calls[0][0]).toBe(someArgument);
});
it('can remove a listener', ()=> {
const mockCallback = jest.fn(() => {});
const mockCallback2 = jest.fn(() => {});
const ref = {};
const ref2 = {};
eventSender.on('testEvent', mockCallback, ref);
eventSender.on('testEvent', mockCallback2, ref2);
eventSender.removeListenersWithRef(ref);
eventSender.emit('testEvent');
expect(mockCallback.mock.calls.length).toBe(0);
expect(mockCallback2.mock.calls.length).toBe(1);
});
it('can remove all listeners', ()=> {
const mockCallback = jest.fn(() => {});
const mockCallback2 = jest.fn(() => {});
const ref = {};
const ref2 = {};
eventSender.on('testEvent', mockCallback, ref);
eventSender.on('testEvent2', mockCallback2, ref2);
eventSender.removeAllListeners('testEvent');
eventSender.emit('testEvent');
eventSender.emit('testEvent2');
expect(mockCallback.mock.calls.length).toBe(0);
expect(mockCallback2.mock.calls.length).toBe(1);
});
});