Skip to content

Commit 0dd9a7d

Browse files
Update tests to use html-dom-parser and prune unused helpers
Fix broken requires in tests now that `lib/html-to-dom-server.js` and `lib/html-to-dom-client.js` have been deleted (use `html-dom-parser` instead). Remove HTML to DOM tests since `html-dom-parser` has its own tests. Remove `helpers.deepEqualCircular()` and its tests as it was used to test HTML to DOM parsing (which is no longer handled by this package, but `html-dom-parser`).
1 parent c1832a7 commit 0dd9a7d

File tree

4 files changed

+9
-198
lines changed

4 files changed

+9
-198
lines changed

test/dom-to-react.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
var assert = require('assert');
77
var React = require('react');
8-
var htmlToDOMServer = require('../lib/html-to-dom-server');
8+
var htmlToDOM = require('html-dom-parser');
99
var domToReact = require('../lib/dom-to-react');
1010
var helpers = require('./helpers/');
1111
var data = require('./data');
@@ -17,7 +17,7 @@ describe('dom-to-react parser', function() {
1717

1818
it('converts single DOM node to React', function() {
1919
var html = data.html.single;
20-
var reactElement = domToReact(htmlToDOMServer(html));
20+
var reactElement = domToReact(htmlToDOM(html));
2121
assert(React.isValidElement(reactElement));
2222
assert.deepEqual(
2323
reactElement,
@@ -27,7 +27,7 @@ describe('dom-to-react parser', function() {
2727

2828
it('converts multiple DOM nodes to React', function() {
2929
var html = data.html.multiple;
30-
var reactElements = domToReact(htmlToDOMServer(html));
30+
var reactElements = domToReact(htmlToDOM(html));
3131
reactElements.forEach(function(reactElement) {
3232
assert(React.isValidElement(reactElement));
3333
assert(reactElement.key);
@@ -44,7 +44,7 @@ describe('dom-to-react parser', function() {
4444
// https://facebook.github.io/react/docs/forms.html#why-textarea-value
4545
it('converts <textarea> correctly', function() {
4646
var html = data.html.textarea;
47-
var reactElement = domToReact(htmlToDOMServer(html));
47+
var reactElement = domToReact(htmlToDOM(html));
4848
assert(React.isValidElement(reactElement));
4949
assert.deepEqual(
5050
reactElement,
@@ -56,7 +56,7 @@ describe('dom-to-react parser', function() {
5656

5757
it('does not escape <script> content', function() {
5858
var html = data.html.script;
59-
var reactElement = domToReact(htmlToDOMServer(html));
59+
var reactElement = domToReact(htmlToDOM(html));
6060
assert(React.isValidElement(reactElement));
6161
assert.deepEqual(
6262
reactElement,
@@ -70,7 +70,7 @@ describe('dom-to-react parser', function() {
7070

7171
it('does not escape <style> content', function() {
7272
var html = data.html.style;
73-
var reactElement = domToReact(htmlToDOMServer(html));
73+
var reactElement = domToReact(htmlToDOM(html));
7474
assert(React.isValidElement(reactElement));
7575
assert.deepEqual(
7676
reactElement,
@@ -84,21 +84,21 @@ describe('dom-to-react parser', function() {
8484

8585
it('does not have `children` for void elements', function() {
8686
var html = data.html.img;
87-
var reactElement = domToReact(htmlToDOMServer(html));
87+
var reactElement = domToReact(htmlToDOM(html));
8888
assert(!reactElement.props.children);
8989
});
9090

9191
it('does not throw an error for void elements', function() {
9292
var html = data.html.void;
93-
var reactElements = domToReact(htmlToDOMServer(html));
93+
var reactElements = domToReact(htmlToDOM(html));
9494
assert.doesNotThrow(function() {
9595
helpers.render(React.createElement('div', {}, reactElements));
9696
});
9797
});
9898

9999
it('skips HTML comments', function() {
100100
var html = [data.html.single, data.html.comment, data.html.single].join('');
101-
var reactElements = domToReact(htmlToDOMServer(html));
101+
var reactElements = domToReact(htmlToDOM(html));
102102
reactElements.forEach(function(reactElement) {
103103
assert(React.isValidElement(reactElement));
104104
assert(reactElement.key);

test/helpers.js

Lines changed: 0 additions & 42 deletions
This file was deleted.

test/helpers/index.js

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
/**
44
* Module dependencies.
55
*/
6-
var assert = require('assert');
7-
var util = require('util');
86
var React = require('react');
97
var ReactDOMServer = require('react-dom/server');
108

@@ -21,65 +19,9 @@ function render(reactElement) {
2119
return ReactDOMServer.renderToStaticMarkup(reactElement);
2220
}
2321

24-
/**
25-
* Test for deep equality between objects that have circular references.
26-
*
27-
* @param {Object} actual - The actual object.
28-
* @param {Object} expected - The expected object.
29-
*/
30-
function deepEqualCircular(actual, expected) {
31-
var IS_VISITED_KEY = '_isVisited';
32-
33-
var actualKeys = Object.keys(actual).sort();
34-
var expectedKeys = Object.keys(expected).sort();
35-
36-
// remove extraneous properties (if applicable)
37-
var isVisitedKeyIndex = actualKeys.indexOf(IS_VISITED_KEY);
38-
if (isVisitedKeyIndex > -1) {
39-
actualKeys.splice(isVisitedKeyIndex, 1);
40-
}
41-
42-
// compare object keys (sanity check)
43-
assert.deepStrictEqual(actualKeys, expectedKeys);
44-
45-
// compare actual against expected
46-
expectedKeys.forEach(function(key) {
47-
var actualValue = actual[key];
48-
var expectedValue = expected[key];
49-
50-
if (actualValue !== null && typeof actualValue === 'object') {
51-
// actual and expected are not the same type
52-
if (expectedValue !== null && typeof expectedValue.constructor === 'object') {
53-
throw new Error(
54-
'Actual value: ' + util.inspect(actualValue) +
55-
'\n\nExpected value: ' +
56-
util.inspect(expectedValue)
57-
);
58-
}
59-
60-
// no need to revisit an already visited object
61-
// this is to mitigate exceeding maximum call stack with circular reference
62-
if (actualValue[IS_VISITED_KEY]) {
63-
return;
64-
65-
// otherwise, walk through it
66-
} else {
67-
// taint the object to denote that it's been visited
68-
actualValue[IS_VISITED_KEY] = true;
69-
return deepEqualCircular(actualValue, expectedValue);
70-
}
71-
72-
// compare the values as is
73-
} else {
74-
assert.deepStrictEqual(actualValue, expectedValue);
75-
}
76-
});
77-
}
78-
7922
/**
8023
* Export assert helpers.
8124
*/
8225
module.exports = {
83-
deepEqualCircular: deepEqualCircular,
8426
render: render
8527
};

test/html-to-dom.js

Lines changed: 0 additions & 89 deletions
This file was deleted.

0 commit comments

Comments
 (0)