chai-as-promised-also-chain
v1.0.2
Published
Adding .also chain in base library of chai-as-promised
Maintainers
Readme
Chain-able Chai promised test case method
Instead of manually writing many test cases for a promise
return Promise.all([
doSomethingAsync().should.eventually.have.deep.property('foo'),
doSomethingAsync().should.eventually.have.deep.property('bar'),
doSomethingAsync().should.eventually.have.deep.property('foobar')
])you can write code that expresses what you really mean:
return doSomethingAsync().should
.eventually.have.deep.property('foo')
.also.have.deep.property('bar')
.also.have.deep.property('foobar')
.exec()In case .also is same as .eventually and .to.eventually, after all
you must call .exec() at the end of chain
Usage
Init test case
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised')
var alsoChain = require('chai-as-promised-also-chain')
chai.use(chaiAsPromised)
chai.use(alsoChain)
var expect = chai.expect;
// OR
var should = chai.should();should/expect Interface
expect(Promise.resolve({name: { first: 'maung', last: 'hla' }, age: 20}))
.to.eventually
.have.deep.property('name.first')
.that.equal('maung')
.also
.have.all.keys(['name', 'age'])
.exec()Promise.resolve({name: { first: 'maung', last: 'hla' }, age: 20}))
.should.eventually
.have.deep.property('name.first')
.that.equal('maung')
.also
.have.all.keys(['name', 'age'])
.exec()notify() is overwrite and that method make assertions for all chain
promise.should
.eventually.have.deep.property('name')
.also.contain.all.keys(['name', 'age'])
.notify(done) // this assertion is call for all promise in chain