Skip to content

Commit

Permalink
docs: add systemjs guide
Browse files Browse the repository at this point in the history
  • Loading branch information
tamird committed Jul 8, 2016
1 parent 62ef7ca commit eabe49e
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ testing your React components, you can consider using [jasmine-enzyme](https://g

[Using Enzyme with Browserify](/docs/guides/browserify.md)

[Using Enzyme with SystemJS](/docs/guides/systemjs.md)

[Using Enzyme with WebPack](/docs/guides/webpack.md)

[Using Enzyme with JSDOM](/docs/guides/jsdom.md)
Expand Down
73 changes: 73 additions & 0 deletions docs/guides/systemjs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Using Enzyme with SystemJS

If you are using a test runner that runs code in a browser-based environment,
you may be using [SystemJS]() in order to bundle your React code.

SystemJS uses static analysis to create a dependency graph at build-time of
your source code to build a bundle. Enzyme has a hand full of conditional
`require()` calls in it in order to remain compatible with React 0.13 and
React 0.14.

Unfortunately, these conditional requires mean there is a bit of extra setup
with bundlers like SystemJS.

In your SystemJS configuration, you simply need to make sure that the
following files are labeled as "external", which means they will be ignored:

```
react/addons
react/lib/ReactContext
react/lib/ExecutionEnvironment
```

Here is an example piece of configuration code marking these as external:

```json
/* package.json */
{
"jspm": {
"overrides": {
"npm:enzyme@2.3.0": {
"map": {
"react/addons": "@empty",
"react/lib/ExecutionEnvironment": "@empty",
"react/lib/ReactContext": "@empty"
}
}
}
}
}
```


## React 0.14 Compatibility

If you are using React 0.14, the instructions above will be the same but with a different list of
externals:

```
react-dom
react-dom/server
react-addons-test-utils
```

## React 15 Compatability

If you are using React 15, your config should include these externals:

```json
/* package.json */
{
"jspm": {
"overrides": {
"npm:enzyme@2.3.0": {
"map": {
"react/addons": "@empty",
"react/lib/ExecutionEnvironment": "@empty",
"react/lib/ReactContext": "@empty"
}
}
}
}
}
```

0 comments on commit eabe49e

Please sign in to comment.