@@ -552,14 +552,27 @@ test.describe("non-aborted", () => {
552552 return `<p id="count-${ id } ">${ val } </p>` ;
553553 }
554554
555+ const deferredHTMLStartString = "<template id=" ;
556+ function getCriticalHTML ( html : string ) {
557+ return html . slice (
558+ 0 ,
559+ html . indexOf ( deferredHTMLStartString ) + deferredHTMLStartString . length
560+ ) ;
561+ }
562+ function getDeferredHTML ( html : string ) {
563+ return html . slice (
564+ html . indexOf ( deferredHTMLStartString ) + deferredHTMLStartString . length
565+ ) ;
566+ }
567+
555568 test ( "works with critical JSON like data" , async ( { page } ) => {
556569 let response = await fixture . requestDocument ( "/" ) ;
557570 let html = await response . text ( ) ;
558- let criticalHTML = html . slice ( 0 , html . indexOf ( "</html>" ) + 7 ) ;
571+ let criticalHTML = getCriticalHTML ( html ) ;
559572 expect ( criticalHTML ) . toContain ( counterHtml ( ROOT_ID , 0 ) ) ;
560573 expect ( criticalHTML ) . toContain ( counterHtml ( INDEX_ID , 0 ) ) ;
561- let deferredHTML = html . slice ( html . indexOf ( "</html>" ) + 7 ) ;
562- expect ( deferredHTML ) . not . toBe ( "" ) ;
574+ let deferredHTML = getDeferredHTML ( html ) ;
575+ expect ( deferredHTML . replace ( "</body></html>" , "" ) ) . not . toBe ( "" ) ;
563576 expect ( deferredHTML ) . not . toContain ( '<p id="count-' ) ;
564577
565578 let app = new PlaywrightFixture ( appFixture , page ) ;
@@ -579,12 +592,12 @@ test.describe("non-aborted", () => {
579592 } ) => {
580593 let response = await fixture . requestDocument ( "/deferred-noscript-resolved" ) ;
581594 let html = await response . text ( ) ;
582- let criticalHTML = html . slice ( 0 , html . indexOf ( "</html>" ) + 7 ) ;
595+ let criticalHTML = getCriticalHTML ( html ) ;
583596 expect ( criticalHTML ) . toContain ( counterHtml ( ROOT_ID , 0 ) ) ;
584597 expect ( criticalHTML ) . toContain ( counterHtml ( DEFERRED_ID , 0 ) ) ;
585- expect ( criticalHTML ) . toContain ( FALLBACK_ID ) ;
586598 expect ( criticalHTML ) . not . toContain ( counterHtml ( RESOLVED_DEFERRED_ID , 0 ) ) ;
587- let deferredHTML = html . slice ( html . indexOf ( "</html>" ) + 7 ) ;
599+ let deferredHTML = getDeferredHTML ( html ) ;
600+ expect ( deferredHTML ) . toContain ( FALLBACK_ID ) ;
588601 expect ( deferredHTML ) . toContain ( counterHtml ( RESOLVED_DEFERRED_ID , 0 ) ) ;
589602
590603 let app = new PlaywrightFixture ( appFixture , page ) ;
@@ -599,12 +612,12 @@ test.describe("non-aborted", () => {
599612 "/deferred-noscript-unresolved"
600613 ) ;
601614 let html = await response . text ( ) ;
602- let criticalHTML = html . slice ( 0 , html . indexOf ( "</html>" ) + 7 ) ;
615+ let criticalHTML = getCriticalHTML ( html ) ;
603616 expect ( criticalHTML ) . toContain ( counterHtml ( ROOT_ID , 0 ) ) ;
604617 expect ( criticalHTML ) . toContain ( counterHtml ( DEFERRED_ID , 0 ) ) ;
605- expect ( criticalHTML ) . toContain ( `<div id="${ FALLBACK_ID } ">` ) ;
606618 expect ( criticalHTML ) . not . toContain ( RESOLVED_DEFERRED_ID ) ;
607- let deferredHTML = html . slice ( html . indexOf ( "</html>" ) + 7 ) ;
619+ let deferredHTML = getDeferredHTML ( html ) ;
620+ expect ( deferredHTML ) . toContain ( `<div id="${ FALLBACK_ID } ">` ) ;
608621 expect ( deferredHTML ) . toContain ( counterHtml ( RESOLVED_DEFERRED_ID , 0 ) ) ;
609622
610623 let app = new PlaywrightFixture ( appFixture , page ) ;
@@ -619,11 +632,11 @@ test.describe("non-aborted", () => {
619632 } ) => {
620633 let response = await fixture . requestDocument ( "/deferred-script-resolved" ) ;
621634 let html = await response . text ( ) ;
622- let criticalHTML = html . slice ( 0 , html . indexOf ( "</html>" ) + 7 ) ;
635+ let criticalHTML = getCriticalHTML ( html ) ;
623636 expect ( criticalHTML ) . toContain ( counterHtml ( ROOT_ID , 0 ) ) ;
624637 expect ( criticalHTML ) . toContain ( counterHtml ( DEFERRED_ID , 0 ) ) ;
625- expect ( criticalHTML ) . toContain ( FALLBACK_ID ) ;
626- let deferredHTML = html . slice ( html . indexOf ( "</html>" ) + 7 ) ;
638+ let deferredHTML = getDeferredHTML ( html ) ;
639+ expect ( deferredHTML ) . toContain ( FALLBACK_ID ) ;
627640 expect ( deferredHTML ) . toContain ( counterHtml ( RESOLVED_DEFERRED_ID , 0 ) ) ;
628641
629642 let app = new PlaywrightFixture ( appFixture , page ) ;
@@ -645,12 +658,12 @@ test.describe("non-aborted", () => {
645658 } ) => {
646659 let response = await fixture . requestDocument ( "/deferred-script-unresolved" ) ;
647660 let html = await response . text ( ) ;
648- let criticalHTML = html . slice ( 0 , html . indexOf ( "</html>" ) + 7 ) ;
661+ let criticalHTML = getCriticalHTML ( html ) ;
649662 expect ( criticalHTML ) . toContain ( counterHtml ( ROOT_ID , 0 ) ) ;
650663 expect ( criticalHTML ) . toContain ( counterHtml ( DEFERRED_ID , 0 ) ) ;
651- expect ( criticalHTML ) . toContain ( `<div id="${ FALLBACK_ID } ">` ) ;
652664 expect ( criticalHTML ) . not . toContain ( RESOLVED_DEFERRED_ID ) ;
653- let deferredHTML = html . slice ( html . indexOf ( "</html>" ) + 7 ) ;
665+ let deferredHTML = getDeferredHTML ( html ) ;
666+ expect ( deferredHTML ) . toContain ( `<div id="${ FALLBACK_ID } ">` ) ;
654667 expect ( deferredHTML ) . toContain ( counterHtml ( RESOLVED_DEFERRED_ID , 0 ) ) ;
655668
656669 let app = new PlaywrightFixture ( appFixture , page ) ;
@@ -672,11 +685,11 @@ test.describe("non-aborted", () => {
672685 } ) => {
673686 let response = await fixture . requestDocument ( "/deferred-script-rejected" ) ;
674687 let html = await response . text ( ) ;
675- let criticalHTML = html . slice ( 0 , html . indexOf ( "</html>" ) + 7 ) ;
688+ let criticalHTML = getCriticalHTML ( html ) ;
676689 expect ( criticalHTML ) . toContain ( counterHtml ( ROOT_ID , 0 ) ) ;
677690 expect ( criticalHTML ) . toContain ( counterHtml ( DEFERRED_ID , 0 ) ) ;
678- expect ( criticalHTML ) . toContain ( FALLBACK_ID ) ;
679- let deferredHTML = html . slice ( html . indexOf ( "</html>" ) + 7 ) ;
691+ let deferredHTML = getDeferredHTML ( html ) ;
692+ expect ( deferredHTML ) . toContain ( FALLBACK_ID ) ;
680693 expect ( deferredHTML ) . toContain ( counterHtml ( ERROR_ID , 0 ) ) ;
681694
682695 let app = new PlaywrightFixture ( appFixture , page ) ;
@@ -698,12 +711,12 @@ test.describe("non-aborted", () => {
698711 } ) => {
699712 let response = await fixture . requestDocument ( "/deferred-script-unrejected" ) ;
700713 let html = await response . text ( ) ;
701- let criticalHTML = html . slice ( 0 , html . indexOf ( "</html>" ) + 7 ) ;
714+ let criticalHTML = getCriticalHTML ( html ) ;
702715 expect ( criticalHTML ) . toContain ( counterHtml ( ROOT_ID , 0 ) ) ;
703716 expect ( criticalHTML ) . toContain ( counterHtml ( DEFERRED_ID , 0 ) ) ;
704- expect ( criticalHTML ) . toContain ( `<div id="${ FALLBACK_ID } ">` ) ;
705717 expect ( criticalHTML ) . not . toContain ( ERROR_ID ) ;
706- let deferredHTML = html . slice ( html . indexOf ( "</html>" ) + 7 ) ;
718+ let deferredHTML = getDeferredHTML ( html ) ;
719+ expect ( deferredHTML ) . toContain ( `<div id="${ FALLBACK_ID } ">` ) ;
707720 expect ( deferredHTML ) . toContain ( counterHtml ( ERROR_ID , 0 ) ) ;
708721
709722 let app = new PlaywrightFixture ( appFixture , page ) ;
0 commit comments