![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/node_modules/laravel-echo/tests/channel/ |
import { SocketIoChannel } from '../../src/channel'; describe('SocketIoChannel', () => { let channel; let socket; beforeEach(() => { const channelName = 'some.channel'; let listeners = []; socket = { emit: (event, data) => listeners.filter(([e]) => e === event).forEach(([, fn]) => fn(channelName, data)), on: (event, fn) => listeners.push([event, fn]), removeListener: (event, fn) => { listeners = listeners.filter(([e, f]) => (!fn ? e !== event : e !== event || f !== fn)); }, }; channel = new SocketIoChannel(socket, channelName, { namespace: false, }); }); test('triggers all listeners for an event', () => { const l1 = jest.fn(); const l2 = jest.fn(); const l3 = jest.fn(); channel.listen('MyEvent', l1); channel.listen('MyEvent', l2); channel.listen('MyOtherEvent', l3); socket.emit('MyEvent', {}); expect(l1).toBeCalled(); expect(l2).toBeCalled(); expect(l3).not.toBeCalled(); socket.emit('MyOtherEvent', {}); expect(l3).toBeCalled(); }); test('can remove a listener for an event', () => { const l1 = jest.fn(); const l2 = jest.fn(); const l3 = jest.fn(); channel.listen('MyEvent', l1); channel.listen('MyEvent', l2); channel.listen('MyOtherEvent', l3); channel.stopListening('MyEvent', l1); socket.emit('MyEvent', {}); expect(l1).not.toBeCalled(); expect(l2).toBeCalled(); expect(l3).not.toBeCalled(); socket.emit('MyOtherEvent', {}); expect(l3).toBeCalled(); }); test('can remove all listeners for an event', () => { const l1 = jest.fn(); const l2 = jest.fn(); const l3 = jest.fn(); channel.listen('MyEvent', l1); channel.listen('MyEvent', l2); channel.listen('MyOtherEvent', l3); channel.stopListening('MyEvent'); socket.emit('MyEvent', {}); expect(l1).not.toBeCalled(); expect(l2).not.toBeCalled(); expect(l3).not.toBeCalled(); socket.emit('MyOtherEvent', {}); expect(l3).toBeCalled(); }); });