{"id":16985381,"url":"https://github.com/fengb/chai-generator","last_synced_at":"2025-04-12T03:32:18.365Z","repository":{"id":31958303,"uuid":"35528208","full_name":"fengb/chai-generator","owner":"fengb","description":"Extend Chai with assertions for Javascript generators","archived":false,"fork":false,"pushed_at":"2019-10-10T21:53:52.000Z","size":22,"stargazers_count":5,"open_issues_count":2,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T23:06:50.570Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fengb.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-13T04:28:37.000Z","updated_at":"2020-10-21T16:31:24.000Z","dependencies_parsed_at":"2022-09-16T12:12:47.111Z","dependency_job_id":null,"html_url":"https://github.com/fengb/chai-generator","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengb%2Fchai-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengb%2Fchai-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengb%2Fchai-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fengb%2Fchai-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fengb","download_url":"https://codeload.github.com/fengb/chai-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248512485,"owners_count":21116612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T02:43:21.190Z","updated_at":"2025-04-12T03:32:18.332Z","avatar_url":"https://github.com/fengb.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chai-generator [![NPM Version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]\n\nThis is a plugin for [chai](http://chaijs.com) to simplify the testing of\nJavascript generators, as introduced in ES6 / ES2015.\n\nBecause the yield / return signature of generators is a little obtuse, it can\nresult in annoyingly verbose tests:\n\n```javascript\nexpect(generator.next()).to.deep.equal({ done: false, value: 15 })\nexpect(generator.next()).to.deep.equal({ done: true, value: -1 })\n```\n\n`chai-generator` removes the muck so your test can look like your intent:\n\n```javascript\nexpect(generator).to.yield(15)\nexpect(generator).to.return(-1)\n```\n\n## Setup\n\n### node.js / io.js\n\n```javascript\nvar chai = require('chai')\nchai.use(require('chai-generator'))\n```\n\n### Browser\n\n```html\n\u003cscript src=\"chai.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"chai-generator.js\"\u003e\u003c/script\u003e\n```\n\n## Assertions\n\n### .yield\n\nAssert that a value is yielded from `generator.next()`. Returned values are not\nconsidered yielded.\n\n```javascript\nexpect(generator).to.yield()\nexpect(generator).to.yield(1)\nexpect(generator).not.to.yield('missing')\nexpect(generator.next(10)).to.yield(10)\n\ngenerator.should.yield()\ngenerator.should.yield(1)\ngenerator.should.not.yield('missing')\ngenerator.next(10).should.yield(10)\n\nassert.yield(generator, 1)\nassert.notYield(generator, 'missing')\nassert.yield(generator.next(10), 10)\n```\n\n`.yield` works with the `.deep` chain:\n\n```javascript\nexpect(generator).to.deep.yield([1, 2, 3])\ngenerator.should.deep.yield([1, 2, 3])\nassert.deepYield([1, 2, 3])\n```\n\n`.yield` can also be chained with other assertions (not available with assert):\n\n```javascript\nexpect(generator).to.yield().and.equal(1)\ngenerator.should.yield().and.equal(1)\n```\n\n### .return\n\nAssert that a value is returned from `generator.next()`. Yielded values are not\nconsidered returned.\n\n```javascript\nexpect(generator).to.return()\nexpect(generator).to.return(1)\nexpect(generator).not.to.return('missing')\nexpect(generator.next(10)).to.return(10)\n\ngenerator.should.return()\ngenerator.should.return(1)\ngenerator.should.not.return('missing')\ngenerator.next(10).should.return(10)\n\nassert.return(generator)\nassert.return(generator, 1)\nassert.notReturn(generator, 'missing')\nassert.return(generator.next(10), 10)\n```\n\n`.return` works with the `.deep` chain:\n\n```javascript\nexpect(generator).to.deep.return([1, 2, 3])\ngenerator.should.deep.return([1, 2, 3])\nassert.deepReturn([1, 2, 3])\n```\n\n`.return` can also be chained with other assertions (not available with assert):\n\n```javascript\nexpect(generator).to.return().and.equal(1)\ngenerator.should.return().and.equal(1)\n```\n\n# License\n\n`chai-generator` is released under the [MIT License](https://github.com/fengb/chai-generator/blob/master/LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/chai-generator.svg?style=flat\n[npm-url]: https://npmjs.org/package/chai-generator\n[travis-image]: https://img.shields.io/travis/fengb/chai-generator.svg?style=flat\n[travis-url]: https://travis-ci.org/fengb/chai-generator\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffengb%2Fchai-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffengb%2Fchai-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffengb%2Fchai-generator/lists"}