@@ -3,7 +3,11 @@ import type {
33 DataStrategyMatch ,
44 DataStrategyResult ,
55} from "../../lib/router/utils" ;
6- import { createDeferred , setup } from "./utils/data-router-setup" ;
6+ import {
7+ createDeferred ,
8+ createLazyStub ,
9+ setup ,
10+ } from "./utils/data-router-setup" ;
711import { createFormData , tick } from "./utils/utils" ;
812
913describe ( "router dataStrategy" , ( ) => {
@@ -95,6 +99,10 @@ describe("router dataStrategy", () => {
9599 keyedResults ( matches , results )
96100 )
97101 ) ;
102+ let { lazyStub : lazyJsonStub , lazyDeferred : lazyJsonDeferred } =
103+ createLazyStub ( ) ;
104+ let { lazyStub : lazyTextStub , lazyDeferred : lazyTextDeferred } =
105+ createLazyStub ( ) ;
98106 let t = setup ( {
99107 routes : [
100108 {
@@ -103,24 +111,24 @@ describe("router dataStrategy", () => {
103111 {
104112 id : "json" ,
105113 path : "/test" ,
106- lazy : true ,
114+ lazy : lazyJsonStub ,
107115 children : [
108116 {
109117 id : "text" ,
110118 index : true ,
111- lazy : true ,
119+ lazy : lazyTextStub ,
112120 } ,
113121 ] ,
114122 } ,
115123 ] ,
116124 dataStrategy,
117125 } ) ;
118126
119- let A = await t . navigate ( "/test" ) ;
120- await A . lazy . json . resolve ( {
127+ await t . navigate ( "/test" ) ;
128+ await lazyJsonDeferred . resolve ( {
121129 loader : ( ) => ( { message : "hello json" } ) ,
122130 } ) ;
123- await A . lazy . text . resolve ( {
131+ await lazyTextDeferred . resolve ( {
124132 loader : ( ) => "hello text" ,
125133 } ) ;
126134 expect ( t . router . state . loaderData ) . toEqual ( {
@@ -211,6 +219,7 @@ describe("router dataStrategy", () => {
211219 } ) ;
212220
213221 it ( "should allow custom implementations to override default behavior with lazy" , async ( ) => {
222+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
214223 let t = setup ( {
215224 routes : [
216225 {
@@ -219,7 +228,7 @@ describe("router dataStrategy", () => {
219228 {
220229 id : "test" ,
221230 path : "/test" ,
222- lazy : true ,
231+ lazy : lazyStub ,
223232 } ,
224233 ] ,
225234 async dataStrategy ( { matches } ) {
@@ -234,8 +243,8 @@ describe("router dataStrategy", () => {
234243 } ,
235244 } ) ;
236245
237- let A = await t . navigate ( "/test" ) ;
238- await A . lazy . test . resolve ( { loader : ( ) => "TEST" } ) ;
246+ await t . navigate ( "/test" ) ;
247+ await lazyDeferred . resolve ( { loader : ( ) => "TEST" } ) ;
239248
240249 expect ( t . router . state . loaderData ) . toMatchObject ( {
241250 test : 'Route ID "test" returned "TEST"' ,
@@ -365,6 +374,7 @@ describe("router dataStrategy", () => {
365374 } ) ;
366375
367376 it ( "does not require resolve to be called if a match is not being loaded" , async ( ) => {
377+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
368378 let t = setup ( {
369379 routes : [
370380 {
@@ -379,7 +389,7 @@ describe("router dataStrategy", () => {
379389 {
380390 id : "child" ,
381391 path : "child" ,
382- lazy : true ,
392+ lazy : lazyStub ,
383393 } ,
384394 ] ,
385395 } ,
@@ -415,7 +425,7 @@ describe("router dataStrategy", () => {
415425 } ) ;
416426
417427 let B = await t . navigate ( "/parent/child" ) ;
418- await B . lazy . child . resolve ( { loader : ( ) => "CHILD" } ) ;
428+ await lazyDeferred . resolve ( { loader : ( ) => "CHILD" } ) ;
419429
420430 // no-op
421431 await B . loaders . parent . resolve ( "XXX" ) ;
@@ -441,6 +451,7 @@ describe("router dataStrategy", () => {
441451 keyedResults ( matches , results )
442452 ) ;
443453 } ) ;
454+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
444455 let t = setup ( {
445456 routes : [
446457 {
@@ -457,7 +468,7 @@ describe("router dataStrategy", () => {
457468 {
458469 id : "child" ,
459470 path : "child" ,
460- lazy : true ,
471+ lazy : lazyStub ,
461472 } ,
462473 ] ,
463474 } ,
@@ -500,7 +511,7 @@ describe("router dataStrategy", () => {
500511 parent : "PARENT" ,
501512 } ) ;
502513
503- let C = await t . navigate ( "/parent/child" ) ;
514+ await t . navigate ( "/parent/child" ) ;
504515 expect ( dataStrategy . mock . calls [ 2 ] [ 0 ] . matches ) . toEqual ( [
505516 expect . objectContaining ( {
506517 shouldLoad : false ,
@@ -515,7 +526,7 @@ describe("router dataStrategy", () => {
515526 route : expect . objectContaining ( { id : "child" } ) ,
516527 } ) ,
517528 ] ) ;
518- await C . lazy . child . resolve ( {
529+ await lazyDeferred . resolve ( {
519530 action : ( ) => "CHILD ACTION" ,
520531 loader : ( ) => "CHILD" ,
521532 shouldRevalidate : ( ) => false ,
@@ -621,6 +632,7 @@ describe("router dataStrategy", () => {
621632 keyedResults ( matches , results )
622633 )
623634 ) ;
635+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
624636 let t = setup ( {
625637 routes : [
626638 {
@@ -629,17 +641,17 @@ describe("router dataStrategy", () => {
629641 {
630642 id : "json" ,
631643 path : "/test" ,
632- lazy : true ,
644+ lazy : lazyStub ,
633645 } ,
634646 ] ,
635647 dataStrategy,
636648 } ) ;
637649
638- let A = await t . navigate ( "/test" , {
650+ await t . navigate ( "/test" , {
639651 formMethod : "post" ,
640652 formData : createFormData ( { } ) ,
641653 } ) ;
642- await A . lazy . json . resolve ( {
654+ await lazyDeferred . resolve ( {
643655 action : ( ) => ( { message : "hello json" } ) ,
644656 } ) ;
645657 expect ( t . router . state . actionData ) . toEqual ( {
@@ -709,6 +721,7 @@ describe("router dataStrategy", () => {
709721 keyedResults ( matches , results )
710722 )
711723 ) ;
724+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
712725 let t = setup ( {
713726 routes : [
714727 {
@@ -717,15 +730,15 @@ describe("router dataStrategy", () => {
717730 {
718731 id : "json" ,
719732 path : "/test" ,
720- lazy : true ,
733+ lazy : lazyStub ,
721734 } ,
722735 ] ,
723736 dataStrategy,
724737 } ) ;
725738
726739 let key = "key" ;
727- let A = await t . fetch ( "/test" , key ) ;
728- await A . lazy . json . resolve ( {
740+ await t . fetch ( "/test" , key ) ;
741+ await lazyDeferred . resolve ( {
729742 loader : ( ) => ( { message : "hello json" } ) ,
730743 } ) ;
731744 expect ( t . fetchers [ key ] . data . message ) . toBe ( "hello json" ) ;
@@ -795,6 +808,7 @@ describe("router dataStrategy", () => {
795808 keyedResults ( matches , results )
796809 )
797810 ) ;
811+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
798812 let t = setup ( {
799813 routes : [
800814 {
@@ -803,18 +817,18 @@ describe("router dataStrategy", () => {
803817 {
804818 id : "json" ,
805819 path : "/test" ,
806- lazy : true ,
820+ lazy : lazyStub ,
807821 } ,
808822 ] ,
809823 dataStrategy,
810824 } ) ;
811825
812826 let key = "key" ;
813- let A = await t . fetch ( "/test" , key , {
827+ await t . fetch ( "/test" , key , {
814828 formMethod : "post" ,
815829 formData : createFormData ( { } ) ,
816830 } ) ;
817- await A . lazy . json . resolve ( {
831+ await lazyDeferred . resolve ( {
818832 action : ( ) => ( { message : "hello json" } ) ,
819833 } ) ;
820834
0 commit comments