Negligible Psychological Misery
Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

unexpected-eventemitter

2.2.0 • Public • Published

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.

Install

npm i unexpected-eventemitter

DownloadsWeekly Downloads

97

Version

2.2.0

License

Apache-2.0

Unpacked Size

20.2 kB

Total Files

7

Last publish

Collaborators

  • avatar