5
5
*/
6
6
var assert = require ( 'assert' ) ;
7
7
var React = require ( 'react' ) ;
8
- var htmlToDOMServer = require ( '../lib/ html-to- dom-server ' ) ;
8
+ var htmlToDOM = require ( 'html-dom-parser ' ) ;
9
9
var domToReact = require ( '../lib/dom-to-react' ) ;
10
10
var helpers = require ( './helpers/' ) ;
11
- var data = require ( './data' ) ;
11
+ var mocks = helpers . mocks ;
12
+ var render = helpers . render ;
12
13
13
14
/**
14
15
* Tests for `domToReact`.
15
16
*/
16
17
describe ( 'dom-to-react parser' , function ( ) {
17
18
18
19
it ( 'converts single DOM node to React' , function ( ) {
19
- var html = data . html . single ;
20
- var reactElement = domToReact ( htmlToDOMServer ( html ) ) ;
20
+ var html = mocks . html . single ;
21
+ var reactElement = domToReact ( htmlToDOM ( html ) ) ;
22
+
21
23
assert ( React . isValidElement ( reactElement ) ) ;
22
24
assert . deepEqual (
23
25
reactElement ,
@@ -26,12 +28,14 @@ describe('dom-to-react parser', function() {
26
28
} ) ;
27
29
28
30
it ( 'converts multiple DOM nodes to React' , function ( ) {
29
- var html = data . html . multiple ;
30
- var reactElements = domToReact ( htmlToDOMServer ( html ) ) ;
31
+ var html = mocks . html . multiple ;
32
+ var reactElements = domToReact ( htmlToDOM ( html ) ) ;
33
+
31
34
reactElements . forEach ( function ( reactElement ) {
32
35
assert ( React . isValidElement ( reactElement ) ) ;
33
36
assert ( reactElement . key ) ;
34
37
} ) ;
38
+
35
39
assert . deepEqual (
36
40
reactElements ,
37
41
[
@@ -43,8 +47,9 @@ describe('dom-to-react parser', function() {
43
47
44
48
// https://facebook.github.io/react/docs/forms.html#why-textarea-value
45
49
it ( 'converts <textarea> correctly' , function ( ) {
46
- var html = data . html . textarea ;
47
- var reactElement = domToReact ( htmlToDOMServer ( html ) ) ;
50
+ var html = mocks . html . textarea ;
51
+ var reactElement = domToReact ( htmlToDOM ( html ) ) ;
52
+
48
53
assert ( React . isValidElement ( reactElement ) ) ;
49
54
assert . deepEqual (
50
55
reactElement ,
@@ -55,8 +60,9 @@ describe('dom-to-react parser', function() {
55
60
} ) ;
56
61
57
62
it ( 'does not escape <script> content' , function ( ) {
58
- var html = data . html . script ;
59
- var reactElement = domToReact ( htmlToDOMServer ( html ) ) ;
63
+ var html = mocks . html . script ;
64
+ var reactElement = domToReact ( htmlToDOM ( html ) ) ;
65
+
60
66
assert ( React . isValidElement ( reactElement ) ) ;
61
67
assert . deepEqual (
62
68
reactElement ,
@@ -69,8 +75,9 @@ describe('dom-to-react parser', function() {
69
75
} ) ;
70
76
71
77
it ( 'does not escape <style> content' , function ( ) {
72
- var html = data . html . style ;
73
- var reactElement = domToReact ( htmlToDOMServer ( html ) ) ;
78
+ var html = mocks . html . style ;
79
+ var reactElement = domToReact ( htmlToDOM ( html ) ) ;
80
+
74
81
assert ( React . isValidElement ( reactElement ) ) ;
75
82
assert . deepEqual (
76
83
reactElement ,
@@ -83,32 +90,40 @@ describe('dom-to-react parser', function() {
83
90
} ) ;
84
91
85
92
it ( 'does not have `children` for void elements' , function ( ) {
86
- var html = data . html . img ;
87
- var reactElement = domToReact ( htmlToDOMServer ( html ) ) ;
93
+ var html = mocks . html . img ;
94
+ var reactElement = domToReact ( htmlToDOM ( html ) ) ;
88
95
assert ( ! reactElement . props . children ) ;
89
96
} ) ;
90
97
91
98
it ( 'does not throw an error for void elements' , function ( ) {
92
- var html = data . html . void ;
93
- var reactElements = domToReact ( htmlToDOMServer ( html ) ) ;
99
+ var html = mocks . html . void ;
100
+ var reactElements = domToReact ( htmlToDOM ( html ) ) ;
94
101
assert . doesNotThrow ( function ( ) {
95
- helpers . render ( React . createElement ( 'div' , { } , reactElements ) ) ;
102
+ render ( React . createElement ( 'div' , { } , reactElements ) ) ;
96
103
} ) ;
97
104
} ) ;
98
105
99
- it ( 'skips HTML comments' , function ( ) {
100
- var html = [ data . html . single , data . html . comment , data . html . single ] . join ( '' ) ;
101
- var reactElements = domToReact ( htmlToDOMServer ( html ) ) ;
106
+ it ( 'skips doctype and comments' , function ( ) {
107
+ var html = [
108
+ mocks . html . doctype ,
109
+ mocks . html . single ,
110
+ mocks . html . comment ,
111
+ mocks . html . single
112
+ ] . join ( '' ) ;
113
+
114
+ var reactElements = domToReact ( htmlToDOM ( html ) ) ;
102
115
reactElements . forEach ( function ( reactElement ) {
103
116
assert ( React . isValidElement ( reactElement ) ) ;
104
117
assert ( reactElement . key ) ;
105
118
} ) ;
119
+
106
120
assert . deepEqual (
107
121
reactElements ,
108
122
[
109
- React . createElement ( 'p' , { key : 0 } , 'foo' ) ,
123
+ // doctype
124
+ React . createElement ( 'p' , { key : 1 } , 'foo' ) ,
110
125
// comment is in the middle
111
- React . createElement ( 'p' , { key : 2 } , 'foo' )
126
+ React . createElement ( 'p' , { key : 3 } , 'foo' )
112
127
]
113
128
) ;
114
129
} ) ;
0 commit comments