Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

unexpected-eventemitter

EventEmitter assertions for Unexpected

Installation

$ npm i unexpected unexpected-eventemitter --save-dev
  • This module requires Node.js v8+, IE11, or a modern browser.
  • unexpected is a peer dependency of this module.
  • In a browser, this module is exposed as global.unexpectedEventEmitter.

Example

const unexpected = require('unexpected');
const {EventEmitter} = require('events');

const expect = unexpected.clone().use(require('unexpected-eventemitter'));

const ee = new EventEmitter();

// "to emit from" with sync function
expect(
  () => {
    ee.emit('foo', {bar: 'baz'});
  },
  'to emit from',
  ee,
  'foo',
  {
    bar: 'baz',
  }
); // ok

// "to emit from" with async function
expect(
  async () => {
    await somethingAsync();
    ee.emit('foo', {bar: 'baz'});
  },
  'to emit from',
  ee,
  'foo',
  {
    bar: 'baz',
  }
); // ok

// "not to emit from" with async function
expect(
  async () => {
    await somethingAsync();
    ee.emit('foo', {bar: 'baz'});
  },
  'not to emit from',
  ee,
  'foo'
); // assertion failure!

Assertions

to emit from

<function> [not] to emit from <EventEmitter> <string> <any*>

  • <function> may be a sync or Promise-returning function.
  • <EventEmitter> may be a duck-typed Node.js EventEmitter
  • <string> is the event name
  • <any*> corresponds to zero (0) or more values which may be emitted. Do not use an array unless you expect the value to be an array!
  • An EventEmitter emitting more values than expected will not fail an assertion.
  • Values are checked with "to satisfy" for flexibility.

to emit with error from

<function> to emit with error from <Error> <EventEmitter> <string> <any*>

  • Use when the subject <function> emits, but also throws or rejects.
  • There is no converse of this assertion; you cannot use [not].

Contributing

Please use the Angular commit message format.

Related Projects

  • unexpected-events: Provides an alternative syntax, with the ability to test multiple events at once

License

©️ 2017-2020 Christopher Hiller. Licensed Apache-2.0.

You can’t perform that action at this time.