Skip to content

Commit 550b2ae

Browse files
test(html-to-react): refactor to expect instead of assert
1 parent 6e74b50 commit 550b2ae

File tree

1 file changed

+40
-38
lines changed

1 file changed

+40
-38
lines changed

test/html-to-react.test.js

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,97 @@
1-
const assert = require('assert');
21
const React = require('react');
32
const parse = require('..');
43
const { data, render } = require('./helpers/');
54

65
describe('HTML to React', () => {
76
describe('exports', () => {
87
it('has default ES Module', () => {
9-
assert.strictEqual(parse.default, parse);
8+
expect(parse.default).toBe(parse);
109
});
1110

1211
it('has domToReact', () => {
13-
assert.strictEqual(parse.domToReact, require('../lib/dom-to-react'));
12+
expect(parse.domToReact).toBe(require('../lib/dom-to-react'));
1413
});
1514

1615
it('has htmlToDOM', () => {
17-
assert.strictEqual(parse.htmlToDOM, require('html-dom-parser'));
16+
expect(parse.htmlToDOM).toBe(require('html-dom-parser'));
1817
});
1918
});
2019

2120
describe('parser', () => {
2221
[undefined, null, {}, [], 42].forEach(value => {
2322
it(`throws an error if first argument is ${value}`, () => {
24-
assert.throws(() => {
23+
expect(() => {
2524
parse(value);
26-
}, TypeError);
25+
}).toThrow(TypeError);
2726
});
2827
});
2928

3029
it('converts empty string to empty array', () => {
31-
assert.deepEqual(parse(''), []);
30+
expect(parse('')).toEqual([]);
3231
});
3332

3433
it('returns string if it cannot be parsed as HTML', () => {
35-
assert.strictEqual(parse('foo'), 'foo');
34+
expect(parse('foo')).toBe('foo');
3635
});
3736

3837
it('converts single HTML element to React', () => {
3938
const html = data.html.single;
4039
const reactElement = parse(html);
41-
assert.strictEqual(render(reactElement), html);
40+
41+
expect(render(reactElement)).toBe(html);
4242
});
4343

4444
it('converts single HTML element and ignores comment', () => {
4545
const html = data.html.single;
4646
// comment should be ignored
4747
const reactElement = parse(html + data.html.comment);
48-
assert.strictEqual(render(reactElement), html);
48+
49+
expect(render(reactElement)).toBe(html);
4950
});
5051

5152
it('converts multiple HTML elements to React', () => {
5253
const html = data.html.multiple;
5354
const reactElements = parse(html);
54-
assert.strictEqual(
55-
render(React.createElement('div', {}, reactElements)),
56-
'<div>' + html + '</div>'
57-
);
55+
56+
expect(
57+
render(React.createElement(React.Fragment, {}, reactElements))
58+
).toBe(html);
5859
});
5960

6061
it('converts complex HTML to React', () => {
6162
const html = data.html.complex;
6263
const reactElement = parse(data.html.doctype + html);
63-
assert.strictEqual(render(reactElement), html);
64+
65+
expect(render(reactElement)).toBe(html);
6466
});
6567

6668
it('converts empty <script> to React', () => {
6769
const html = '<script></script>';
6870
const reactElement = parse(html);
69-
assert.strictEqual(render(reactElement), html);
71+
72+
expect(render(reactElement)).toBe(html);
7073
});
7174

7275
it('converts empty <style> to React', () => {
7376
const html = '<style></style>';
7477
const reactElement = parse(html);
75-
assert.strictEqual(render(reactElement), html);
78+
79+
expect(render(reactElement)).toBe(html);
7680
});
7781

7882
it('converts SVG to React', () => {
7983
const svg = data.svg.complex;
8084
const reactElement = parse(svg);
81-
assert.strictEqual(render(reactElement), svg);
85+
86+
expect(render(reactElement)).toBe(svg);
8287
});
8388

8489
it('decodes HTML entities', () => {
8590
const encodedEntities = 'asdf &amp; &yuml; &uuml; &apos;';
8691
const decodedEntities = "asdf & ÿ ü '";
8792
const reactElement = parse('<i>' + encodedEntities + '</i>');
88-
assert.strictEqual(reactElement.props.children, decodedEntities);
93+
94+
expect(reactElement.props.children).toBe(decodedEntities);
8995
});
9096
});
9197

@@ -100,15 +106,15 @@ describe('HTML to React', () => {
100106
}
101107
}
102108
});
103-
assert.strictEqual(
104-
render(reactElement),
109+
110+
expect(render(reactElement)).toBe(
105111
html.replace('<title>Title</title>', '<title>Replaced Title</title>')
106112
);
107113
});
108114

109115
it('does not override the element if an invalid React element is returned', () => {
110116
const html = data.html.complex;
111-
const reactElement = parse(html, {
117+
const options = {
112118
replace: node => {
113119
if (node.attribs && node.attribs.id === 'header') {
114120
return {
@@ -117,14 +123,10 @@ describe('HTML to React', () => {
117123
};
118124
}
119125
}
120-
});
121-
assert.notEqual(
122-
render(reactElement),
123-
html.replace(
124-
'<header id="header">Header</header>',
125-
'<h1>Heading</h1>'
126-
)
127-
);
126+
};
127+
const reactElement = parse(html, options);
128+
129+
expect(render(reactElement)).toBe(html);
128130
});
129131
});
130132

@@ -134,7 +136,8 @@ describe('HTML to React', () => {
134136
const html = data.html.single;
135137
const options = { library: Preact };
136138
const preactElement = parse(html, options);
137-
assert.deepEqual(preactElement, Preact.createElement('p', {}, 'foo'));
139+
140+
expect(preactElement).toEqual(Preact.createElement('p', {}, 'foo'));
138141
});
139142
});
140143

@@ -146,10 +149,8 @@ describe('HTML to React', () => {
146149
const html = '<ul><li/><li/></ul>';
147150
const options = { htmlparser2: { xmlMode: true } };
148151
const reactElements = parse(html, options);
149-
assert.strictEqual(
150-
render(reactElements),
151-
'<ul><li></li><li></li></ul>'
152-
);
152+
153+
expect(render(reactElements)).toBe('<ul><li></li><li></li></ul>');
153154
});
154155
});
155156

@@ -160,16 +161,17 @@ describe('HTML to React', () => {
160161
</tbody>
161162
</table>`;
162163
const reactElement = parse(html);
163-
assert.strictEqual(render(reactElement), html);
164+
165+
expect(render(reactElement)).toBe(html);
164166
});
165167

166168
it('removes whitespace text nodes when enabled', () => {
167169
const html = `<table>
168170
<tbody><tr><td> text </td><td> </td>\t</tr>\r</tbody>\n</table>`;
169171
const options = { trim: true };
170172
const reactElement = parse(html, options);
171-
assert.strictEqual(
172-
render(reactElement),
173+
174+
expect(render(reactElement)).toBe(
173175
'<table><tbody><tr><td> text </td><td></td></tr></tbody></table>'
174176
);
175177
});

0 commit comments

Comments
 (0)