Automatically load Chai plugins in Mocha
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
specs
src/lib
.babelrc
.codeclimate.yml
.editorconfig
.eslintignore
.eslintrc
.gitignore
.travis.yml
CONTRIBUTING.md
LICENSE.md
README.md
esdoc.json
package.json

README.md

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.