import {afterAll, beforeEach, describe, expect, it, mock} from 'bun:test'; import {EventEmitter} from '../../src/events'; describe(`When emitting an event`, () => { const eventEmitter: EventEmitter = new EventEmitter(); describe(`Given a callback is subscribed`, () => { const mockListener = mock(() => undefined); const subscription = eventEmitter.subscribe(mockListener); describe(`Given an event is emitted`, () => { beforeEach(() => eventEmitter.emit('mock event')); it(`notifies the callback with the event`, () => expect(mockListener).toHaveBeenCalled()); }); afterAll(() => subscription.dispose()); }); });