chai-autoload-plugins
Version:
Automatically load chai plugins declared in package.json
116 lines (80 loc) • 3.47 kB
Markdown
chai-autoload-plugins
=====================
Automatically load chai plugins declared in `package.json`.
[](https://www.npmjs.com/package/chai-autoload-plugins)
[](https://www.npmjs.com/package/chai-autoload-plugins)
[](https://travis-ci.org/amercier/chai-autoload-plugins)
[](https://gemnasium.com/amercier/chai-autoload-plugins)
[](https://www.npmjs.com/package/chai-autoload-plugins)
[](https://codecov.io/github/amercier/chai-autoload-plugins?branch=master)
[](https://doc.esdoc.org/github.com/amercier/chai-autoload-plugins/)
[](https://codeclimate.com/github/amercier/chai-autoload-plugins)
Installation
------------
npm install --save-dev chai-autoload-plugins
Usage with [Mocha](https://www.npmjs.com/package/mocha)
-------------------------------------------------------
Example using [dirty-chai](https://www.npmjs.com/package/dirty-chai):
`package.json`
```json
"devDependencies": {
"chai": "^3.5.0",
"chai-autoload-plugins": "*",
"dirty-chai": "^1.2.2",
"mocha": "^3.1.0"
}
```
`test.js`
```js
const chai = require('chai');
expect(true).to.be.true();
```
Run:
```
node_modules/.bin/mocha --require chai-autoload-plugins test.js
```
See [Mocha integration tests](./specs/integration/mocha) for more details.
Usage with other frameworks
---------------------------
The only difference is that you have to have to require `chai-autoload-plugins` manually in the test
files:
`test.js`
```js
const chai = require('chai');
require('chai-autoload-plugins');
expect(true).to.be.true();
```
See [Jasmine integration tests](./specs/integration/jasmine) or
[Jest integration tests](./specs/integration/jest) for more details.
Options
-------
By default, `chai-autoload-plugins` look for NPM modules whose name start with `chai-` or ends
with `-chai`. This behavior can be overriden by declaring a `chaiAutoloadPlugins` field in
`package.json`. Ex:
```json
"devDependencies": {
"chai": "^3.5.0",
"chai-autoload-plugins": "*",
"my-custom-chai-plugin": "*",
"mocha": "^3.1.0"
},
"chaiAutoloadPlugins": {
"include": ["my-custom-chai-plugin"],
"exclude": []
}
```
Note: if an array is given, it will include/exclude the exact names in the array. If a string is
given, it will interpret it as a regular expression (ex: `"include": "^.*-chai-.*$"`).
### `include`
Regular expression or list of plugins to include.
- Type: `String|String[]`
- Default: `"(^chai|-chai$)"`
### `exclude`
Regular expression or list of plugins to exclude. Precedes `include`.
- Type: `String|String[]`
- Default: `[]`
Notes
-----
### Browser support
This modules needs to read the contents of `package.json` on the disk, and therefore is not
compatible with in-browser tests (ex: Karma). It is and will only be targeting NodeJS.