chai-equal-jsx

JSX assertions for Chai

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
chai-equal-jsx
531.0.97 years ago7 years agoMinified + gzip package size for chai-equal-jsx in KB

Readme

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(<a />);

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(<a />);

See test/index.js for usage in context.