Skip to content

Commit c482c33

Browse files
Merge pull request #74 from remarkablemark/refactor-test
Refactor tests to use ES6 syntax
2 parents ac69a8f + 081d98a commit c482c33

File tree

8 files changed

+184
-250
lines changed

8 files changed

+184
-250
lines changed

.eslintrc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
{
22
"env": {
3-
"node": true,
43
"browser": true,
4+
"commonjs": true,
55
"mocha": true,
6-
"commonjs": true
6+
"node": true
77
},
88
"extends": "eslint:recommended",
9+
"parserOptions": {
10+
"ecmaVersion": 6
11+
},
912
"plugins": ["prettier"],
1013
"rules": {
1114
"prettier/prettier": "error"

test/attributes-to-props.js

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
1-
'use strict';
1+
const assert = require('assert');
2+
const attributesToProps = require('../lib/attributes-to-props');
23

3-
/**
4-
* Module dependencies.
5-
*/
6-
var assert = require('assert');
7-
var attributesToProps = require('../lib/attributes-to-props');
8-
9-
/**
10-
* Tests for attributes to props helper.
11-
*/
12-
describe('attributes to props helper', function() {
13-
/**
14-
* HTML DOM property to React prop.
15-
*/
16-
describe('HTML DOM', function() {
17-
it('converts attributes to React props', function() {
4+
describe('attributesToProps', () => {
5+
describe('HTML DOM', () => {
6+
it('converts attributes to React props', () => {
187
assert.deepEqual(
198
attributesToProps({
209
class: 'ic',
@@ -29,7 +18,7 @@ describe('attributes to props helper', function() {
2918
);
3019
});
3120

32-
it('converts standard properties to React props', function() {
21+
it('converts standard properties to React props', () => {
3322
assert.deepEqual(
3423
attributesToProps({
3524
allowfullscreen: true,
@@ -44,7 +33,7 @@ describe('attributes to props helper', function() {
4433
);
4534
});
4635

47-
it('converts RDFa properties to React props', function() {
36+
it('converts RDFa properties to React props', () => {
4837
assert.deepEqual(
4938
attributesToProps({
5039
property: 'foo',
@@ -57,7 +46,7 @@ describe('attributes to props helper', function() {
5746
);
5847
});
5948

60-
it('converts non-standard properties to React props', function() {
49+
it('converts non-standard properties to React props', () => {
6150
assert.deepEqual(
6251
attributesToProps({
6352
itemscope: true,
@@ -70,7 +59,7 @@ describe('attributes to props helper', function() {
7059
);
7160
});
7261

73-
it('keeps `data-` and `aria-` attributes as is', function() {
62+
it('keeps `data-` and `aria-` attributes as is', () => {
7463
assert.deepEqual(
7564
attributesToProps({
7665
'data-foo': 'bar',
@@ -83,7 +72,7 @@ describe('attributes to props helper', function() {
8372
);
8473
});
8574

86-
it('converts properties with weird capitalization', function() {
75+
it('converts properties with weird capitalization', () => {
8776
assert.deepEqual(
8877
attributesToProps({
8978
'ACCEPT-CHARSET': 'ISO-8859-1',
@@ -100,7 +89,7 @@ describe('attributes to props helper', function() {
10089
);
10190
});
10291

103-
it('converts bool properties', function() {
92+
it('converts bool properties', () => {
10493
assert.deepEqual(
10594
attributesToProps({
10695
readonly: ''
@@ -121,11 +110,8 @@ describe('attributes to props helper', function() {
121110
});
122111
});
123112

124-
/**
125-
* SVG DOM property to React prop.
126-
*/
127-
describe('SVG DOM properties', function() {
128-
it('converts attributes/properties to React props', function() {
113+
describe('SVG DOM properties', () => {
114+
it('converts attributes/properties to React props', () => {
129115
assert.deepEqual(
130116
attributesToProps({
131117
edgeMode: 'edgeMode',
@@ -148,7 +134,7 @@ describe('attributes to props helper', function() {
148134
);
149135
});
150136

151-
it('does not convert incorrectly capitalized properties', function() {
137+
it('does not convert incorrectly capitalized properties', () => {
152138
assert.deepEqual(
153139
attributesToProps({
154140
'XLINK:HREF': '#',
@@ -157,20 +143,17 @@ describe('attributes to props helper', function() {
157143
}),
158144
{
159145
/*
160-
xlinkHref: '#',
161-
yChannelSelector: 'G',
162-
zoomAndPan: 'disable'
163-
*/
146+
xlinkHref: '#',
147+
yChannelSelector: 'G',
148+
zoomAndPan: 'disable'
149+
*/
164150
}
165151
);
166152
});
167153
});
168154

169-
/**
170-
* Style string to object.
171-
*/
172-
describe('style', function() {
173-
it('converts CSS style string to JS style object', function() {
155+
describe('style', () => {
156+
it('converts CSS style string to JS style object', () => {
174157
// proper css
175158
assert.deepEqual(
176159
attributesToProps({

test/benchmark.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
1-
'use strict';
1+
const Benchmark = require('benchmark');
2+
const { data } = require('./helpers/');
3+
const Parser = require('../');
24

3-
var Benchmark = require('benchmark');
4-
var helpers = require('./helpers/');
5-
var Parser = require('../');
6-
7-
var suite = new Benchmark.Suite();
8-
var mocks = helpers.mocks;
5+
const suite = new Benchmark.Suite();
96

107
suite
11-
.add('html-to-react - Single', function() {
12-
Parser(mocks.html.single);
8+
.add('html-to-react - Single', () => {
9+
Parser(data.html.single);
1310
})
14-
.add('html-to-react - Multiple', function() {
15-
Parser(mocks.html.multiple);
11+
.add('html-to-react - Multiple', () => {
12+
Parser(data.html.multiple);
1613
})
17-
.add('html-to-react - Complex', function() {
18-
Parser(mocks.html.complex);
14+
.add('html-to-react - Complex', () => {
15+
Parser(data.html.complex);
1916
})
20-
.on('cycle', function(event) {
17+
.on('cycle', event => {
2118
process.stdout.write(String(event.target) + '\n');
2219
})
2320
.run({

test/dom-to-react.js

Lines changed: 41 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,23 @@
1-
'use strict';
2-
3-
/**
4-
* Module dependencies.
5-
*/
6-
var assert = require('assert');
7-
var React = require('react');
8-
var htmlToDOM = require('html-dom-parser');
9-
var domToReact = require('../lib/dom-to-react');
10-
var helpers = require('./helpers/');
11-
var mocks = helpers.mocks;
12-
var render = helpers.render;
13-
14-
/**
15-
* Tests for `domToReact`.
16-
*/
17-
describe('dom-to-react parser', function() {
18-
it('converts single DOM node to React', function() {
19-
var html = mocks.html.single;
20-
var reactElement = domToReact(htmlToDOM(html));
1+
const assert = require('assert');
2+
const React = require('react');
3+
const htmlToDOM = require('html-dom-parser');
4+
const domToReact = require('../lib/dom-to-react');
5+
const { data, render } = require('./helpers/');
6+
7+
describe('dom-to-react parser', () => {
8+
it('converts single DOM node to React', () => {
9+
const html = data.html.single;
10+
const reactElement = domToReact(htmlToDOM(html));
2111

2212
assert(React.isValidElement(reactElement));
2313
assert.deepEqual(reactElement, React.createElement('p', {}, 'foo'));
2414
});
2515

26-
it('converts multiple DOM nodes to React', function() {
27-
var html = mocks.html.multiple;
28-
var reactElements = domToReact(htmlToDOM(html));
16+
it('converts multiple DOM nodes to React', () => {
17+
const html = data.html.multiple;
18+
const reactElements = domToReact(htmlToDOM(html));
2919

30-
reactElements.forEach(function(reactElement) {
20+
reactElements.forEach(reactElement => {
3121
assert(React.isValidElement(reactElement));
3222
assert(reactElement.key);
3323
});
@@ -39,9 +29,9 @@ describe('dom-to-react parser', function() {
3929
});
4030

4131
// https://facebook.github.io/react/docs/forms.html#why-textarea-value
42-
it('converts <textarea> correctly', function() {
43-
var html = mocks.html.textarea;
44-
var reactElement = domToReact(htmlToDOM(html));
32+
it('converts <textarea> correctly', () => {
33+
const html = data.html.textarea;
34+
const reactElement = domToReact(htmlToDOM(html));
4535

4636
assert(React.isValidElement(reactElement));
4737
assert.deepEqual(
@@ -56,9 +46,9 @@ describe('dom-to-react parser', function() {
5646
);
5747
});
5848

59-
it('does not escape <script> content', function() {
60-
var html = mocks.html.script;
61-
var reactElement = domToReact(htmlToDOM(html));
49+
it('does not escape <script> content', () => {
50+
const html = data.html.script;
51+
const reactElement = domToReact(htmlToDOM(html));
6252

6353
assert(React.isValidElement(reactElement));
6454
assert.deepEqual(
@@ -75,9 +65,9 @@ describe('dom-to-react parser', function() {
7565
);
7666
});
7767

78-
it('does not escape <style> content', function() {
79-
var html = mocks.html.style;
80-
var reactElement = domToReact(htmlToDOM(html));
68+
it('does not escape <style> content', () => {
69+
const html = data.html.style;
70+
const reactElement = domToReact(htmlToDOM(html));
8171

8272
assert(React.isValidElement(reactElement));
8373
assert.deepEqual(
@@ -94,30 +84,30 @@ describe('dom-to-react parser', function() {
9484
);
9585
});
9686

97-
it('does not have `children` for void elements', function() {
98-
var html = mocks.html.img;
99-
var reactElement = domToReact(htmlToDOM(html));
87+
it('does not have `children` for void elements', () => {
88+
const html = data.html.img;
89+
const reactElement = domToReact(htmlToDOM(html));
10090
assert(!reactElement.props.children);
10191
});
10292

103-
it('does not throw an error for void elements', function() {
104-
var html = mocks.html.void;
105-
var reactElements = domToReact(htmlToDOM(html));
106-
assert.doesNotThrow(function() {
93+
it('does not throw an error for void elements', () => {
94+
const html = data.html.void;
95+
const reactElements = domToReact(htmlToDOM(html));
96+
assert.doesNotThrow(() => {
10797
render(React.createElement('div', {}, reactElements));
10898
});
10999
});
110100

111-
it('skips doctype and comments', function() {
112-
var html = [
113-
mocks.html.doctype,
114-
mocks.html.single,
115-
mocks.html.comment,
116-
mocks.html.single
101+
it('skips doctype and comments', () => {
102+
const html = [
103+
data.html.doctype,
104+
data.html.single,
105+
data.html.comment,
106+
data.html.single
117107
].join('');
118108

119-
var reactElements = domToReact(htmlToDOM(html));
120-
reactElements.forEach(function(reactElement) {
109+
const reactElements = domToReact(htmlToDOM(html));
110+
reactElements.forEach(reactElement => {
121111
assert(React.isValidElement(reactElement));
122112
assert(reactElement.key);
123113
});
@@ -130,9 +120,9 @@ describe('dom-to-react parser', function() {
130120
]);
131121
});
132122

133-
it("handles svg's with a viewBox", function() {
134-
var html = mocks.svg.simple;
135-
var reactElement = domToReact(
123+
it("handles svg's with a viewBox", () => {
124+
const html = data.svg.simple;
125+
const reactElement = domToReact(
136126
htmlToDOM(html, { lowerCaseAttributeNames: false })
137127
);
138128

File renamed without changes.

test/helpers/index.js

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
1-
'use strict';
1+
const { isValidElement } = require('react');
2+
const { renderToStaticMarkup } = require('react-dom/server');
3+
const data = require('./data');
24

35
/**
4-
* Module dependencies.
5-
*/
6-
var React = require('react');
7-
var ReactDOMServer = require('react-dom/server');
8-
9-
/**
10-
* Render a React element to static HTML markup.
6+
* Renders a React element to static HTML markup.
117
*
128
* @param {ReactElement} reactElement - The React element.
139
* @return {String} - The static HTML markup.
1410
*/
15-
function render(reactElement) {
16-
if (!React.isValidElement(reactElement)) {
11+
const render = reactElement => {
12+
if (!isValidElement(reactElement)) {
1713
throw new Error(reactElement, 'is not a valid React element.');
1814
}
19-
return ReactDOMServer.renderToStaticMarkup(reactElement);
20-
}
15+
return renderToStaticMarkup(reactElement);
16+
};
2117

22-
/**
23-
* Export assert helpers.
24-
*/
2518
module.exports = {
26-
render: render,
27-
mocks: require('./mocks')
19+
render,
20+
data
2821
};

0 commit comments

Comments
 (0)