@@ -3,7 +3,11 @@ import type {
3
3
DataStrategyMatch ,
4
4
DataStrategyResult ,
5
5
} 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" ;
7
11
import { createFormData , tick } from "./utils/utils" ;
8
12
9
13
describe ( "router dataStrategy" , ( ) => {
@@ -95,6 +99,10 @@ describe("router dataStrategy", () => {
95
99
keyedResults ( matches , results )
96
100
)
97
101
) ;
102
+ let { lazyStub : lazyJsonStub , lazyDeferred : lazyJsonDeferred } =
103
+ createLazyStub ( ) ;
104
+ let { lazyStub : lazyTextStub , lazyDeferred : lazyTextDeferred } =
105
+ createLazyStub ( ) ;
98
106
let t = setup ( {
99
107
routes : [
100
108
{
@@ -103,24 +111,24 @@ describe("router dataStrategy", () => {
103
111
{
104
112
id : "json" ,
105
113
path : "/test" ,
106
- lazy : true ,
114
+ lazy : lazyJsonStub ,
107
115
children : [
108
116
{
109
117
id : "text" ,
110
118
index : true ,
111
- lazy : true ,
119
+ lazy : lazyTextStub ,
112
120
} ,
113
121
] ,
114
122
} ,
115
123
] ,
116
124
dataStrategy,
117
125
} ) ;
118
126
119
- let A = await t . navigate ( "/test" ) ;
120
- await A . lazy . json . resolve ( {
127
+ await t . navigate ( "/test" ) ;
128
+ await lazyJsonDeferred . resolve ( {
121
129
loader : ( ) => ( { message : "hello json" } ) ,
122
130
} ) ;
123
- await A . lazy . text . resolve ( {
131
+ await lazyTextDeferred . resolve ( {
124
132
loader : ( ) => "hello text" ,
125
133
} ) ;
126
134
expect ( t . router . state . loaderData ) . toEqual ( {
@@ -211,6 +219,7 @@ describe("router dataStrategy", () => {
211
219
} ) ;
212
220
213
221
it ( "should allow custom implementations to override default behavior with lazy" , async ( ) => {
222
+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
214
223
let t = setup ( {
215
224
routes : [
216
225
{
@@ -219,7 +228,7 @@ describe("router dataStrategy", () => {
219
228
{
220
229
id : "test" ,
221
230
path : "/test" ,
222
- lazy : true ,
231
+ lazy : lazyStub ,
223
232
} ,
224
233
] ,
225
234
async dataStrategy ( { matches } ) {
@@ -234,8 +243,8 @@ describe("router dataStrategy", () => {
234
243
} ,
235
244
} ) ;
236
245
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" } ) ;
239
248
240
249
expect ( t . router . state . loaderData ) . toMatchObject ( {
241
250
test : 'Route ID "test" returned "TEST"' ,
@@ -365,6 +374,7 @@ describe("router dataStrategy", () => {
365
374
} ) ;
366
375
367
376
it ( "does not require resolve to be called if a match is not being loaded" , async ( ) => {
377
+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
368
378
let t = setup ( {
369
379
routes : [
370
380
{
@@ -379,7 +389,7 @@ describe("router dataStrategy", () => {
379
389
{
380
390
id : "child" ,
381
391
path : "child" ,
382
- lazy : true ,
392
+ lazy : lazyStub ,
383
393
} ,
384
394
] ,
385
395
} ,
@@ -415,7 +425,7 @@ describe("router dataStrategy", () => {
415
425
} ) ;
416
426
417
427
let B = await t . navigate ( "/parent/child" ) ;
418
- await B . lazy . child . resolve ( { loader : ( ) => "CHILD" } ) ;
428
+ await lazyDeferred . resolve ( { loader : ( ) => "CHILD" } ) ;
419
429
420
430
// no-op
421
431
await B . loaders . parent . resolve ( "XXX" ) ;
@@ -441,6 +451,7 @@ describe("router dataStrategy", () => {
441
451
keyedResults ( matches , results )
442
452
) ;
443
453
} ) ;
454
+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
444
455
let t = setup ( {
445
456
routes : [
446
457
{
@@ -457,7 +468,7 @@ describe("router dataStrategy", () => {
457
468
{
458
469
id : "child" ,
459
470
path : "child" ,
460
- lazy : true ,
471
+ lazy : lazyStub ,
461
472
} ,
462
473
] ,
463
474
} ,
@@ -500,7 +511,7 @@ describe("router dataStrategy", () => {
500
511
parent : "PARENT" ,
501
512
} ) ;
502
513
503
- let C = await t . navigate ( "/parent/child" ) ;
514
+ await t . navigate ( "/parent/child" ) ;
504
515
expect ( dataStrategy . mock . calls [ 2 ] [ 0 ] . matches ) . toEqual ( [
505
516
expect . objectContaining ( {
506
517
shouldLoad : false ,
@@ -515,7 +526,7 @@ describe("router dataStrategy", () => {
515
526
route : expect . objectContaining ( { id : "child" } ) ,
516
527
} ) ,
517
528
] ) ;
518
- await C . lazy . child . resolve ( {
529
+ await lazyDeferred . resolve ( {
519
530
action : ( ) => "CHILD ACTION" ,
520
531
loader : ( ) => "CHILD" ,
521
532
shouldRevalidate : ( ) => false ,
@@ -621,6 +632,7 @@ describe("router dataStrategy", () => {
621
632
keyedResults ( matches , results )
622
633
)
623
634
) ;
635
+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
624
636
let t = setup ( {
625
637
routes : [
626
638
{
@@ -629,17 +641,17 @@ describe("router dataStrategy", () => {
629
641
{
630
642
id : "json" ,
631
643
path : "/test" ,
632
- lazy : true ,
644
+ lazy : lazyStub ,
633
645
} ,
634
646
] ,
635
647
dataStrategy,
636
648
} ) ;
637
649
638
- let A = await t . navigate ( "/test" , {
650
+ await t . navigate ( "/test" , {
639
651
formMethod : "post" ,
640
652
formData : createFormData ( { } ) ,
641
653
} ) ;
642
- await A . lazy . json . resolve ( {
654
+ await lazyDeferred . resolve ( {
643
655
action : ( ) => ( { message : "hello json" } ) ,
644
656
} ) ;
645
657
expect ( t . router . state . actionData ) . toEqual ( {
@@ -709,6 +721,7 @@ describe("router dataStrategy", () => {
709
721
keyedResults ( matches , results )
710
722
)
711
723
) ;
724
+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
712
725
let t = setup ( {
713
726
routes : [
714
727
{
@@ -717,15 +730,15 @@ describe("router dataStrategy", () => {
717
730
{
718
731
id : "json" ,
719
732
path : "/test" ,
720
- lazy : true ,
733
+ lazy : lazyStub ,
721
734
} ,
722
735
] ,
723
736
dataStrategy,
724
737
} ) ;
725
738
726
739
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 ( {
729
742
loader : ( ) => ( { message : "hello json" } ) ,
730
743
} ) ;
731
744
expect ( t . fetchers [ key ] . data . message ) . toBe ( "hello json" ) ;
@@ -795,6 +808,7 @@ describe("router dataStrategy", () => {
795
808
keyedResults ( matches , results )
796
809
)
797
810
) ;
811
+ let { lazyStub, lazyDeferred } = createLazyStub ( ) ;
798
812
let t = setup ( {
799
813
routes : [
800
814
{
@@ -803,18 +817,18 @@ describe("router dataStrategy", () => {
803
817
{
804
818
id : "json" ,
805
819
path : "/test" ,
806
- lazy : true ,
820
+ lazy : lazyStub ,
807
821
} ,
808
822
] ,
809
823
dataStrategy,
810
824
} ) ;
811
825
812
826
let key = "key" ;
813
- let A = await t . fetch ( "/test" , key , {
827
+ await t . fetch ( "/test" , key , {
814
828
formMethod : "post" ,
815
829
formData : createFormData ( { } ) ,
816
830
} ) ;
817
- await A . lazy . json . resolve ( {
831
+ await lazyDeferred . resolve ( {
818
832
action : ( ) => ( { message : "hello json" } ) ,
819
833
} ) ;
820
834
0 commit comments