1.0.0 • Published 8 years ago

portend v1.0.0

Weekly downloads
2
License
Apache-2.0
Repository
github
Last release
8 years ago

Portend

Build Status Coverage Status

Portend is a utility for expecting a particular event to be emitted a specific number of times.

It can be useful for writing tests in which a known number of events are expected to be emitted, and the test must wait before proceeding.

Usage

Portend requires that it be called with an EventEmitter-like object (something with an on function) and an event name. By default, it will expect the event to be fired once, but this can be overridden with the third parameter.

Generic Scenario

const portend = require('portend');

// Wait for my.event to be emitted twice from the emitter
portend(emitter, 'my.event', 2).then(events => {
	// events will ['test', 'test 2']
});

emitter.emit('my.event', 'test');
emitter.emit('my.event', 'test 2');

Shortcuts

There are a few shortcuts for setting up the expected number of emits. once, twice, and thrice can be used to expect 1, 2 and 3 emits respectively.

const portend = require('portend');

// Wait for my.event to be emitted once
portend.once(emitter, 'my.event').then(events => {
	// events will be ['test']
});

emitter.emit('my.event', 'test');
1.0.0

8 years ago