55 */
66var assert = require ( 'assert' ) ;
77var React = require ( 'react' ) ;
8- var htmlToDOMServer = require ( '../lib/ html-to- dom-server ' ) ;
8+ var htmlToDOM = require ( 'html-dom-parser ' ) ;
99var domToReact = require ( '../lib/dom-to-react' ) ;
1010var helpers = require ( './helpers/' ) ;
11- var data = require ( './data' ) ;
11+ var mocks = helpers . mocks ;
12+ var render = helpers . render ;
1213
1314/**
1415 * Tests for `domToReact`.
1516 */
1617describe ( 'dom-to-react parser' , function ( ) {
1718
1819 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+
2123 assert ( React . isValidElement ( reactElement ) ) ;
2224 assert . deepEqual (
2325 reactElement ,
@@ -26,12 +28,14 @@ describe('dom-to-react parser', function() {
2628 } ) ;
2729
2830 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+
3134 reactElements . forEach ( function ( reactElement ) {
3235 assert ( React . isValidElement ( reactElement ) ) ;
3336 assert ( reactElement . key ) ;
3437 } ) ;
38+
3539 assert . deepEqual (
3640 reactElements ,
3741 [
@@ -43,8 +47,9 @@ describe('dom-to-react parser', function() {
4347
4448 // https://facebook.github.io/react/docs/forms.html#why-textarea-value
4549 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+
4853 assert ( React . isValidElement ( reactElement ) ) ;
4954 assert . deepEqual (
5055 reactElement ,
@@ -55,8 +60,9 @@ describe('dom-to-react parser', function() {
5560 } ) ;
5661
5762 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+
6066 assert ( React . isValidElement ( reactElement ) ) ;
6167 assert . deepEqual (
6268 reactElement ,
@@ -69,8 +75,9 @@ describe('dom-to-react parser', function() {
6975 } ) ;
7076
7177 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+
7481 assert ( React . isValidElement ( reactElement ) ) ;
7582 assert . deepEqual (
7683 reactElement ,
@@ -83,32 +90,40 @@ describe('dom-to-react parser', function() {
8390 } ) ;
8491
8592 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 ) ) ;
8895 assert ( ! reactElement . props . children ) ;
8996 } ) ;
9097
9198 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 ) ) ;
94101 assert . doesNotThrow ( function ( ) {
95- helpers . render ( React . createElement ( 'div' , { } , reactElements ) ) ;
102+ render ( React . createElement ( 'div' , { } , reactElements ) ) ;
96103 } ) ;
97104 } ) ;
98105
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 ) ) ;
102115 reactElements . forEach ( function ( reactElement ) {
103116 assert ( React . isValidElement ( reactElement ) ) ;
104117 assert ( reactElement . key ) ;
105118 } ) ;
119+
106120 assert . deepEqual (
107121 reactElements ,
108122 [
109- React . createElement ( 'p' , { key : 0 } , 'foo' ) ,
123+ // doctype
124+ React . createElement ( 'p' , { key : 1 } , 'foo' ) ,
110125 // comment is in the middle
111- React . createElement ( 'p' , { key : 2 } , 'foo' )
126+ React . createElement ( 'p' , { key : 3 } , 'foo' )
112127 ]
113128 ) ;
114129 } ) ;
0 commit comments