Newfangled Package Modernizer

    sinon-as-promised
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/sinon-as-promised package

    4.0.3 • Public • Published

    sinon-as-promised Build Status

    Extend Sinon stubs with promise stubbing methods.

    Sinon 2 added resolves and rejects methods and no longer requires this library.

    Installing

    npm install sinon-as-promised

    If you're using sinon-as-promised in the browser and are not using Browserify/Webpack, use 3.x or earlier.

    Usage

    var sinon  = require('sinon')
    require('sinon-as-promised')
     
    sinon.stub().resolves('foo')().then(function (value) {
      assert.equal(value, 'foo')
    })

    You'll only need to require sinon-as-promised once. It attaches the appropriate stubbing functions which will then be available anywhere else you require sinon. It defaults to using native ES6 Promise (or provides a polyfill), but you can use another promise library if you'd like, as long as it exposes a constructor:

    // Using Bluebird
    var Bluebird = require('bluebird')
    require('sinon-as-promised')(Bluebird)

    API

    stub.resolves(value) -> stub

    value

    Required
    Type: any

    When called, the stub will return a "thenable" object which will return a promise for the provided value. Any Promises/A+ compliant library will handle this object properly.

    var stub = sinon.stub();
    stub.resolves('foo');
     
    stub().then(function (value) {
        // value === 'foo'
    });
     
    stub.onCall(0).resolves('bar')
    stub().then(function (value) {
        // value === 'bar'
    });

    stub.rejects(err) -> stub

    err

    Required
    Type: error / string

    When called, the stub will return a thenable which will return a reject promise with the provided err. If err is a string, it will be set as the message on an Error object.

    stub.rejects(new Error('foo'))().catch(function (error) {
        // error.message === 'foo'
    });
    stub.rejects('foo')().catch(function (error) {
        // error.message === 'foo'
    });
     
    stub.onCall(0).rejects('bar');
    stub().catch(function (error) {
        // error.message === 'bar'
    });

    Examples

    License

    MIT © Ben Drucker

    Install

    npm i sinon-as-promised

    DownloadsWeekly Downloads

    27,709

    Version

    4.0.3

    License

    MIT

    Last publish

    Collaborators

    • bendrucker