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

    promise-testingpublic

    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;

    Usage

    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.

    engine.scanChai(chai);

    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

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

    Expectations

    You can now use chai expectations just like you normally would, however they won't be run until the promise completes.

    wrappedPromise.then.expect.result.to.equal('hello').then.notify(done);

    is equivalent to

    promise.then(function(result){
        expect(result).to.equal('hello');
    }).then(
        function(){
            done(); //No Error - test passes 
        },
        done //There was an error - pass it to done 
    );

    install

    npm i promise-testing

    Downloadslast 7 days

    0

    version

    0.0.12

    license

    MIT

    last publish

    collaborators

    • avatar