{"_id":"chai-as-promised-also-chain","_rev":"3-a98ffad805ab2e140e6b89871411d0dd","name":"chai-as-promised-also-chain","description":"Adding .also chain in base library of chai-as-promised","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.1":{"name":"chai-as-promised-also-chain","version":"1.0.1","description":"Adding .also chain in base library of chai-as-promised","main":"index.js","scripts":{"test":"mocha test/*.js"},"keywords":["chai","chai-as-promised","assertion","chain","also"],"author":{"name":"greenlikeorange","email":"ty@kny.co"},"license":"MIT","devDependencies":{"chai":"^3.5.0","chai-as-promised":"^6.0.0","mocha":"^3.2.0"},"gitHead":"b5c2891d167e35afb4402094da62bde2ebb12e07","_id":"chai-as-promised-also-chain@1.0.1","_shasum":"2bcdc69656606b654699d6ab449ea363f0244640","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.3.0","_npmUser":{"name":"greenlikeorange","email":"ty@kny.co"},"dist":{"shasum":"2bcdc69656606b654699d6ab449ea363f0244640","tarball":"https://registry.npmjs.org/chai-as-promised-also-chain/-/chai-as-promised-also-chain-1.0.1.tgz","integrity":"sha512-i7XPH6PgouCKhLhFuL3+3BGM2bcTi3UNMByAUU7/O56/I3koRp9a/UgN4Ryxwu5xW+JchkdVtyjxHipwU4Cy4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEBx+0keQ5tQx3vQ3eLHB05DM8MEzDKIO/c933gFfQ1iAiBcYJ2CMxsKVUGlJoPzR+VjN1gokJL9y5jIdasG4lzwoQ=="}]},"maintainers":[{"name":"greenlikeorange","email":"ty@kny.co"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/chai-as-promised-also-chain-1.0.1.tgz_1487096620225_0.5272074656095356"}},"1.0.2":{"name":"chai-as-promised-also-chain","version":"1.0.2","description":"Adding .also chain in base library of chai-as-promised","main":"index.js","scripts":{"test":"mocha test/*.js"},"keywords":["chai","chai-as-promised","assertion","chain","also"],"author":{"name":"greenlikeorange","email":"ty@kny.co"},"license":"MIT","devDependencies":{"chai":"^3.5.0","chai-as-promised":"^6.0.0","mocha":"^3.2.0"},"gitHead":"b329669efe45643a98858eb03bd358a1b63fb85c","_id":"chai-as-promised-also-chain@1.0.2","_shasum":"6416a23b3f7384e6279c911ea804d67bfc62ef1c","_from":".","_npmVersion":"4.0.5","_nodeVersion":"7.3.0","_npmUser":{"name":"greenlikeorange","email":"ty@kny.co"},"dist":{"shasum":"6416a23b3f7384e6279c911ea804d67bfc62ef1c","tarball":"https://registry.npmjs.org/chai-as-promised-also-chain/-/chai-as-promised-also-chain-1.0.2.tgz","integrity":"sha512-jJOyyN94V0urqi+llXzIC1Sb6OyCjF1a79IW+eolfDKAMSzGudHKGDa+zeP4WjbyKiU9pab1ktu335RzTQufcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5oBnzh6kheuM9yiE0OjJQyPWyaosZrxPO8f7G/RrtSAiBkWSH8MNHQXrXh9LQ2Od5pkW+htxrCg9YWzk8pBOQGFw=="}]},"maintainers":[{"name":"greenlikeorange","email":"ty@kny.co"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/chai-as-promised-also-chain-1.0.2.tgz_1487096937507_0.0882978627923876"}}},"readme":"<a href=\"http://promisesaplus.com/\">\n    <img src=\"https://promises-aplus.github.io/promises-spec/assets/logo-small.png\"\n         align=\"right\" valign=\"top\" alt=\"Promises/A+ logo\" />\n</a>\n\n# Chain-able Chai promised test case method\n\n\nInstead of manually writing many test cases for a promise\n\n```javascript\nreturn Promise.all([\n  doSomethingAsync().should.eventually.have.deep.property('foo'),\n  doSomethingAsync().should.eventually.have.deep.property('bar'),\n  doSomethingAsync().should.eventually.have.deep.property('foobar')\n])\n```\n\nyou can write code that expresses what you really mean:\n\n```javascript\nreturn doSomethingAsync().should\n  .eventually.have.deep.property('foo')\n  .also.have.deep.property('bar')\n  .also.have.deep.property('foobar')\n  .exec()\n```\n\nIn case `.also` is same as `.eventually` and `.to.eventually`, after all\nyou must call `.exec()` at the end of chain\n\n\n## Usage\n\n### Init test case\n\n```javascript\nvar chai = require('chai');\nvar chaiAsPromised = require('chai-as-promised')\nvar alsoChain = require('chai-as-promised-also-chain')\n\nchai.use(chaiAsPromised)\nchai.use(alsoChain)\n\nvar expect = chai.expect;\n\n// OR\n\nvar should = chai.should();\n```\n\n### `should`/`expect` Interface\n\n```javascript\nexpect(Promise.resolve({name: { first: 'maung', last: 'hla' }, age: 20}))\n  .to.eventually\n    .have.deep.property('name.first')\n      .that.equal('maung')\n  .also\n    .have.all.keys(['name', 'age'])\n  .exec()\n```\n\n```javascript\nPromise.resolve({name: { first: 'maung', last: 'hla' }, age: 20}))\n  .should.eventually\n    .have.deep.property('name.first')\n      .that.equal('maung')\n  .also\n    .have.all.keys(['name', 'age'])\n  .exec()\n```\n\n### `notify()` is overwrite and that method make assertions for all chain\n\n```javascript\npromise.should\n  .eventually.have.deep.property('name')\n  .also.contain.all.keys(['name', 'age'])\n  .notify(done) // this assertion is call for all promise in chain\n```\n","maintainers":[{"name":"greenlikeorange","email":"ty@kny.co"}],"time":{"modified":"2022-06-13T05:50:48.115Z","created":"2017-02-14T18:23:40.456Z","1.0.1":"2017-02-14T18:23:40.456Z","1.0.2":"2017-02-14T18:28:57.730Z"},"keywords":["chai","chai-as-promised","assertion","chain","also"],"author":{"name":"greenlikeorange","email":"ty@kny.co"},"license":"MIT","readmeFilename":"README.md"}