Skip to content

Commit

Permalink
update jsx support
Browse files Browse the repository at this point in the history
  • Loading branch information
Vadim Demedes committed Jan 19, 2017
1 parent 0c2f965 commit 9b5f650
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 30 deletions.
7 changes: 2 additions & 5 deletions lib/assert.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ const indentString = require('indent-string');
const isObservable = require('is-observable');
const isPromise = require('is-promise');
const jestSnapshot = require('jest-snapshot');
const reactElementToJSXString = require('react-element-to-jsx-string').default;
const snapshotState = require('./snapshot-state');

const x = module.exports;
Expand Down Expand Up @@ -155,13 +154,11 @@ x.ifError = (err, msg) => {
};

x.jsxEqual = (val, expected, msg) => {
const treeEquals = reactElementToJSXString(val) === reactElementToJSXString(expected);
test(treeEquals, create(val, expected, '===', msg, x.jsxEqual));
test(deepEqual(val, expected), create(val, expected, '===', msg, x.jsxEqual));
};

x.notJsxEqual = (val, expected, msg) => {
const treeEquals = reactElementToJSXString(val) === reactElementToJSXString(expected);
test(!treeEquals, create(val, expected, '!==', msg, x.notJsxEqual));
test(!deepEqual(val, expected), create(val, expected, '!==', msg, x.notJsxEqual));
};

x._snapshot = function (tree, optionalMessage, match, snapshotStateGetter) {
Expand Down
9 changes: 0 additions & 9 deletions lib/serialize-error.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,10 @@ const StackUtils = require('stack-utils');
const prettyFormat = require('pretty-format');
const reactElementPlugin = require('pretty-format/plugins/ReactElement');
const reactTestPlugin = require('pretty-format/plugins/ReactTestComponent');
const renderer = require('react-test-renderer');
const beautifyStack = require('./beautify-stack');
const extractStack = require('./extract-stack');

function isReactElement(obj) {
return obj.type && obj.ref !== undefined && obj.props;
}

function serializeValue(value) {
if (isReactElement(value)) {
value = renderer.create(value).toJSON();
}

return prettyFormat(value, {
plugins: [reactTestPlugin, reactElementPlugin],
highlight: true
Expand Down
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -156,9 +156,6 @@
"plur": "^2.0.0",
"pretty-format": "github:vadimdemedes/pretty-format#colors",
"pretty-ms": "^2.0.0",
"react": "^15.4.0",
"react-element-to-jsx-string": "^5.0.2",
"react-test-renderer": "^15.4.0",
"repeating": "^2.0.0",
"require-precompiled": "^0.1.0",
"resolve-cwd": "^1.0.0",
Expand Down Expand Up @@ -188,6 +185,8 @@
"nyc": "^10.0.0",
"pify": "^2.3.0",
"proxyquire": "^1.7.4",
"react": "^15.4.2",
"react-test-renderer": "^15.4.2",
"rimraf": "^2.5.0",
"signal-exit": "^3.0.0",
"sinon": "^1.17.2",
Expand Down
17 changes: 13 additions & 4 deletions test/assert.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
'use strict';
const renderer = require('react-test-renderer');
const test = require('tap').test;
const React = require('react');
const sinon = require('sinon');
Expand Down Expand Up @@ -494,23 +495,31 @@ test('.deepEqual() should not mask RangeError from underlying assert', t => {

test('.jsxEqual()', t => {
t.throws(() => {
assert.jsxEqual(React.createElement('b', null), React.createElement('i', null));
const actual = renderer.create(React.createElement('b', null)).toJSON();
const expected = renderer.create(React.createElement('i', null)).toJSON();
assert.jsxEqual(actual, expected);
});

t.doesNotThrow(() => {
assert.jsxEqual(React.createElement('b', null), React.createElement('b', null));
const actual = renderer.create(React.createElement('b', null)).toJSON();
const expected = renderer.create(React.createElement('b', null)).toJSON();
assert.jsxEqual(actual, expected);
});

t.end();
});

test('.notJsxEqual()', t => {
t.throws(() => {
assert.notJsxEqual(React.createElement('b', null), React.createElement('b', null));
const actual = renderer.create(React.createElement('b', null)).toJSON();
const expected = renderer.create(React.createElement('b', null)).toJSON();
assert.notJsxEqual(actual, expected);
});

t.doesNotThrow(() => {
assert.notJsxEqual(React.createElement('b', null), React.createElement('i', null));
const actual = renderer.create(React.createElement('b', null)).toJSON();
const expected = renderer.create(React.createElement('i', null)).toJSON();
assert.notJsxEqual(actual, expected);
});

t.end();
Expand Down
9 changes: 0 additions & 9 deletions test/serialize-error.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,11 @@
const prettyFormat = require('pretty-format');
const reactElementPlugin = require('pretty-format/plugins/ReactElement');
const reactTestPlugin = require('pretty-format/plugins/ReactTestComponent');
const renderer = require('react-test-renderer');
const test = require('tap').test;
const beautifyStack = require('../lib/beautify-stack');
const serialize = require('../lib/serialize-error');

function isReactElement(obj) {
return obj.type && obj.ref !== undefined && obj.props;
}

function serializeValue(value) {
if (isReactElement(value)) {
value = renderer.create(value).toJSON();
}

return prettyFormat(value, {
plugins: [reactTestPlugin, reactElementPlugin],
highlight: true
Expand Down

0 comments on commit 9b5f650

Please sign in to comment.