enzyme
Version:
JavaScript Testing utilities for React
58 lines (43 loc) • 1.47 kB
Markdown
# Working with jsdom & `mount`
If you plan on using `mount`, it requires jsdom. Jsdom requires node 4 or above. As a result, if
you want to use `mount`, you will need to make sure node 4 or iojs is on your machine.
### Switching between node versions
Some times you may need to switch between different versions of node, you can use a CLI tool called
`nvm` to quickly switch between node versions.
To install NVM:
```bash
brew install nvm
nvm install 4
```
Now your machine will be running Node 4. You can use the `nvm use` command to switch between the two
environments:
```bash
nvm use 0.12
```
```bash
nvm use 4
```
### Preventing tests from failing on old versions
If you are worried about tests not passing on versions of node that don't support jsdom, Enzyme
comes with a helper function to wrap your tests in a safety layer such that any tests written
inside of that function will be skipped if jsdom is not available. (Note that this is for mocha
only).
```jsx
import { mount, shallow } from 'enzyme';
describe('MyComponent', () => {
describeWithDOM('interaction', () => {
// these tests will get skipped if jsdom is not available...
it('should do something', () => {
const wrapper = mount(<MyComponent />);
// ...
});
});
describe('non-interaction', () => {
// these tests will always run
it('should do something', () => {
const wrapper = shallow(<MyComponent />);
// ...
});
});
});
```