Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

unexpected-eventemitter

boneskull3.3kApache-2.02.4.0

EventEmitter assertions for Unexpected

unexpected, assertion, assert, event, events, eventemitter, ee, test, tdd, bdd

readme

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

// "to emit from" with Promise
expect(
  somethingAsync().then(() => {
    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!

// "to emit with error from"
expect(
  Promise.resolve().then(() => {
    ee.emit('foo', {bar: 'baz'});
    throw new Error('uh oh');
  }),
  'to emit with error from',
  ee,
  'foo',
  /uh oh/
); // ok

Assertions

to emit from

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

  • <function|Promise> may be a Promise, async, or synchronous 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|Promise> to emit with error from <Error> <EventEmitter> <string> <any*>

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

Contributing

Please use the Conventional Commits commit message format.

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

License

:copyright: 2017-2020 Christopher Hiller. Licensed Apache-2.0.

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

2.4.0 (2022-07-23)

Features

2.3.0 (2022-07-23)

Features

  • allow peer dep of unexpected v12/v13 (5f5e4bb)

2.2.1 (2022-07-23)

Bug Fixes

  • dependencies: upgrade dependencies for npm audit (cea2522)

2.2.0 (2020-05-18)

Features

  • add "to emit with error" assertion (2faaa59)

2.1.0 (2020-04-10)

Features

2.0.0 (2020-03-24)

⚠ BREAKING CHANGES

  • Updating deps, dropping support for Node.js v6

Bug Fixes

  • drop support for Node.js v6 (0d91dad)