jasmine-expect-jsx
![Build Status](https://api.travis-ci.org/smacker/jasmine-expect-jsx.svg)
![Greenkeeper badge](https://badges.greenkeeper.io/smacker/jasmine-expect-jsx.svg)
Adds toEqualJSX
and toIncludeJSX
methods to jasmine assertions.
Uses Algolia's react-element-to-jsx-string under the hood.
Installation
npm install -D jasmine-expect-jsx
Setup
Browser
<script src="/path/to/jasmine-expect-jsx.js"></script>
Karma
Integration is easy with the karma-jasmine-expect-jsx plugin and it provides colored output.
Also you can just add 'node_modules/jasmine-expect-jsx/dist/jasmine-expect-jsx.js'
to files section of your config.
Node.js
require('jasmine-expect-jsx');
Jest
- Add
setupTestFrameworkScriptFile
in package.json
{
...
"jest": {
"setupTestFrameworkScriptFile": "<rootDir>/jestSetup.js"
}
...
}
- Import
jasmine-expect-jsx
in setupTestFrameworkScriptFile
file
require('jasmine-expect-jsx');
Usage
The following tests are all passing:
Expect
class TestComponent extends React.Component {}
expect(<div />).toEqualJSX(<div />);
expect(<TestComponent />).toEqualJSX(<TestComponent />);
expect(<div />).not.toEqualJSX(<span />);
expect(<TestComponent />).not.toEqualJSX(<span />);
expect(<div><span>Hello World!</span></div>).toIncludeJSX(<span>Hello World!</span>);
expect(<TestComponent />).toIncludeJSX(<SomeSubComponent />);
expect(<div><span>Hello World!</span></div>).not.toIncludeJSX(<span>Hello World!</span>);
expect(<TestComponent />).not.toIncludeJSX(<SomeSubComponent />);