11/* eslint-env jest */
22import * as React from "react" ;
3- import reactFromMarkupContainer from ".." ;
3+ import reactFromHtml from ".." ;
44
5- describe ( "reactFromMarkupContainer E2E tests" , async ( ) => {
5+ describe ( "reactFromHtml E2E tests" , async ( ) => {
66 it ( "Should rehydrate a basic component" , async ( ) => {
77 const componentName : string = "myComponent" ;
88
@@ -13,63 +13,46 @@ describe("reactFromMarkupContainer E2E tests", async () => {
1313 const rehydrators = { [ componentName ] : rehydrator } ;
1414 const documentElement = document . createElement ( "div" ) ;
1515
16- documentElement . innerHTML = `
17- <div data-react-from-html-container>
18- <div data-rehydratable="${ componentName } "></div>
19- </div>` ;
16+ documentElement . innerHTML = `<div data-rehydratable="${ componentName } "></div>` ;
2017
21- await reactFromMarkupContainer ( documentElement , rehydrators , {
18+ await reactFromHtml ( documentElement , rehydrators , {
2219 extra : { } ,
2320 } ) ;
2421
2522 expect ( documentElement . innerHTML ) . toMatchSnapshot ( ) ;
2623 } ) ;
2724
28- it ( "Should rehydrate valid HTML markup" , async ( ) => {
29- const documentElement = document . createElement ( "div" ) ;
30-
31- documentElement . innerHTML = `
32- <div data-react-from-html-container>
33- <p>paragraph</p>
34- </div>` ;
35-
36- await reactFromMarkupContainer ( documentElement , { } , { extra : { } } ) ;
37-
38- expect ( documentElement . innerHTML ) . toMatchSnapshot ( ) ;
39- } ) ;
40-
41- it ( "Should work for nested markup containers" , async ( ) => {
25+ it ( "Should work for nested rehydratables" , async ( ) => {
4226 const componentName : string = "mycomponentName" ;
4327
4428 const mockCall = jest . fn ( ) ;
4529 const rehydrators = {
46- [ componentName ] : async ( ) => {
30+ [ componentName ] : async ( node : HTMLElement ) => {
4731 mockCall ( ) ;
4832
49- return React . createElement ( "span" , { } , "rehydrated component" ) ;
33+ await reactFromHtml ( node , rehydrators , { extra : { } } ) ;
34+
35+ return React . createElement ( "span" , {
36+ dangerouslySetInnerHTML : { __html : node . innerHTML } ,
37+ } ) ;
5038 } ,
5139 } ;
5240
5341 const documentElement = document . createElement ( "div" ) ;
5442
5543 documentElement . innerHTML = `
56- <div data-react-from-html-container>
57- <div data-rehydratable="${ componentName } "></div>
58- <div data-react-from-html-container>
59- <div data-rehydratable="${ componentName } ">
60- <div data-react-from-html-container>
61- <div data-rehydratable="${ componentName } "></div>
62- </div>
63- </div>
64- <div data-rehydratable="${ componentName } "></div>
65- </div>
66- </div>` ;
67-
68- await reactFromMarkupContainer ( documentElement , rehydrators , {
44+ <div data-rehydratable="${ componentName } ">
45+ <div data-rehydratable="${ componentName } ">
46+ Hello, World!
47+ </div>
48+ </div>
49+ ` ;
50+
51+ await reactFromHtml ( documentElement , rehydrators , {
6952 extra : { } ,
7053 } ) ;
7154
7255 expect ( documentElement . innerHTML ) . toMatchSnapshot ( ) ;
73- expect ( mockCall ) . toBeCalledTimes ( 3 ) ;
56+ expect ( mockCall ) . toBeCalledTimes ( 2 ) ;
7457 } ) ;
7558} ) ;
0 commit comments