node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


Promise Testing Build StatusDependency StatusdevDependency Status

A testing library for then-able promises.

  • Implementation independent. Should work with any Promise/A+ conformant library. (Test suite runs against Q and When).
  • Runs in Node or directly in the browser.
  • Support for NPM and Component package managers.
  • Test/Assertion framework agnostic. Support for Mocha and Chai built in.

Quick Start

See the example;


Create a new test engine.

Node.js or Component

var PromiseTesting = require('promise-testing');
var engine = new PromiseTesting();

In the browser (included via script tag)

var engine = new PromiseEngine();

Add Chai Support.

If you are using any chai extensions (i.e. SinonChai) before calling the scanChai method.


Wrap Promises or Patch Methods.

Promises need to be wrapped by a wrapper object for testing.

var rawPromise = someService.createPromise();
var wrappedPromise = engine.wrap(rawPromise);

Functions that always return promises can be patched for convenience

//all calls to the patched function now return a wrappedPromise 
var wrappedPromise1 = someService.createPromise();
var wrappedPromise2 = someService.createPromise();


You can now use chai expectations just like you normally would, however they won't be run until the promise completes.'hello').then.notify(done);

is equivalent to

        done(); //No Error - test passes 
    done //There was an error - pass it to done