chai-equal-jsx

1.0.9 • Public • Published

chai-equal-jsx

NPM version Build Status Build Status Downloads

Adds equalJSX and includeJSX methods to chai assertions. Uses Algolia's react-element-to-jsx-string under the hood.

Installation

npm install -D chai-equal-jsx

Setup

import chai from 'chai';
import equalJSX from 'chai-equal-jsx';
 
chai.use(equalJSX);

Usage

The following tests are all passing:

Expect

class TestComponent extends React.Component {}
 
// equalJSX
expect(<div />).to.equalJSX(<div />);
expect(<TestComponent />).to.equalJSX(<TestComponent />);
 
expect(<div />).to.not.equalJSX(<span />);
expect(<TestComponent />).to.not.equalJSX(<span />);
 
// includeJSX
expect(<div><TestComponent /></div>).to.includeJSX(<TestComponent />);
expect(<div><TestComponent /><span /></div>).to.includeJSX(<span></span>);
 
expect(<TestComponent />).to.not.includeJSX(<span></span>);
expect(<div><span /><TestComponent /></div>).to.not.includeJSX(</>);

Should

chai.should();
 
class TestComponent extends React.Component {}
 
// equalJSX
(<div />).should.equalJSX(<div />);
(<TestComponent />).should.equalJSX(<TestComponent />);
 
(<div />).should.not.equalJSX(<span />);
(<TestComponent />).should.not.equalJSX(<span />);
 
// includeJSX
(<div><TestComponent /></div>).should.includeJSX(<TestComponent />);
(<div><TestComponent /><span /></div>).should.includeJSX(<span></span>);
 
(<TestComponent />).should.not.includeJSX(<span></span>);
(<div><span /><TestComponent /></div>).should.not.includeJSX(</>);

See test/index.js for usage in context.

Package Sidebar

Install

npm i chai-equal-jsx

Weekly Downloads

554

Version

1.0.9

License

MIT

Last publish

Collaborators

  • echenley