a utility for testing promise code

Promise Testing

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;


Node.js or Component

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

In the browser (included via script tag)

var engine = new PromiseEngine();

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


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