1.0.0 • Published 9 years ago

systemjs-jest v1.0.0

Weekly downloads
41
License
MIT
Repository
github
Last release
9 years ago

systemjs-jest

SystemJS Builder jest plugin

Rationale

Jest is primarily intended as a unit testing framework that mocks CommonJS modules. In order to use the ES6 module loader, SystemJS and JSPM are somewhat necessary right now. This plugin is a stopgap that preprocesses jest unit tests using the SystemJS Builder.

Example

Jest is made to work with dependencies that are installed via npm. The babel-jest package would seem like a good solution, but a jest test trying to load dependencies installed with JSPM will fail:

jspm install chai=npm:chai
// example-spec.js
import {expect} from 'chai'; // doesn't work! jest can't find the module

Usage

First install the plugin:

npm install --save-dev systemjs-jest

Then, in your "jest" section in package.json, add the following:

{
  "jest": {
    "scriptPreprocessor": "systemjs-jest"
  }
}

Now your import statements will magically work like they're supposed to!

Caveats

Sidestepping the CommonJS module loader also means that the mocking capabilities in Jest don't work with modules that are brought in using "import" statements. For a demonstration of how to mock/stub/spy on things that are using the SystemJS loader, see this example. Ideally in the future, Jest would just configure the ES6 loader in this manner and this plugin wouldn't be necessary.

Special Thanks

This project was mostly inspired by babel-jest.