chai-autoload-plugins

Automatically load chai plugins declared in package.json

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
chai-autoload-plugins
0.1.06 years ago6 years agoMinified + gzip package size for chai-autoload-plugins in KB

Readme

chai-autoload-plugins
Automatically load chai plugins declared in package.json.
Latest Stable Version License Build Status
Dependency Status NPM Downloads Test Coverage API Documentation Code Climate

Installation

npm install --save-dev chai-autoload-plugins

Usage with Mocha

Example using dirty-chai:
package.json
"devDependencies": {
  "chai": "^3.5.0",
  "chai-autoload-plugins": "*",
  "dirty-chai": "^1.2.2",
  "mocha": "^3.1.0"
}

test.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 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
const chai = require('chai');
require('chai-autoload-plugins');

expect(true).to.be.true();

See Jasmine integration tests or Jest integration tests 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:
"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.