@ryusei/light
Version:
<div align="center"> <a href="https://light.ryuseijs.com"> <img alt="RyuseiLight" src="https://light.ryuseijs.com/images/svg/logo.svg" width="70"> </a>
43 lines (29 loc) • 1.07 kB
text/typescript
import { EventBus } from '../EventBus';
describe( 'EventBus', () => {
test( 'can register a handler to the bus by #on() and can trigger it by #emit().', () => {
const event = new EventBus();
const callback = jest.fn();
event.on( 'open', callback );
event.emit( 'open' );
expect( callback ).toHaveBeenCalledTimes( 1 );
event.emit( 'open' );
expect( callback ).toHaveBeenCalledTimes( 2 );
} );
test( 'can emit an event with any number of arguments.', () => {
const event = new EventBus();
const callback = jest.fn();
event.on( 'open', callback );
event.emit( 'open', 1, true, null );
expect( callback ).toHaveBeenCalledWith( 1, true, null );
} );
test( 'can discard all handlers by #destroy().', () => {
const event = new EventBus();
const callback = jest.fn();
event.on( 'open', callback );
event.emit( 'open' );
expect( callback ).toHaveBeenCalledTimes( 1 );
event.destroy();
event.emit( 'open' );
expect( callback ).toHaveBeenCalledTimes( 1 );
} );
} );