@@ -827,32 +827,56 @@ test.describe('Invalidation', () => {
827
827
test . describe ( 'data-sveltekit attributes' , ( ) => {
828
828
test ( 'data-sveltekit-preload-code' , async ( { page } ) => {
829
829
/** @type {string[] } */
830
- const requests = [ ] ;
831
- page . on ( 'request' , ( r ) => {
832
- requests . push ( r . url ( ) ) ;
830
+ const responses = [ ] ;
831
+
832
+ const nodes_location = process . env . DEV
833
+ ? '.svelte-kit/generated/client/nodes/'
834
+ : '/_app/immutable/nodes/' ;
835
+
836
+ page . on ( 'response' , async ( response ) => {
837
+ const url = response . url ( ) ;
838
+ if ( url . includes ( nodes_location ) ) {
839
+ responses . push ( url ) ;
840
+ }
833
841
} ) ;
834
842
835
843
// eager
836
844
await page . goto ( '/data-sveltekit/preload-code' ) ;
837
- expect ( requests . length ) . toBeGreaterThanOrEqual ( 1 ) ;
845
+ await page . locator ( '#eager' ) . hover ( ) ;
846
+ await page . locator ( '#eager' ) . dispatchEvent ( 'touchstart' ) ;
847
+ // expect 4 nodes on initial load: root layout, root error, current page, and eager preload
848
+ expect ( responses . length ) . toEqual ( 4 ) ;
838
849
839
850
// viewport
840
- requests . length = 0 ;
851
+ responses . length = 0 ;
841
852
page . locator ( '#viewport' ) . scrollIntoViewIfNeeded ( ) ;
842
- await Promise . all ( [ page . waitForTimeout ( 100 ) , page . waitForLoadState ( 'networkidle' ) ] ) ;
843
- expect ( requests . length ) . toBeGreaterThanOrEqual ( 1 ) ;
853
+ await page . locator ( '#viewport' ) . hover ( ) ;
854
+ await page . locator ( '#viewport' ) . dispatchEvent ( 'touchstart' ) ;
855
+ await Promise . all ( [
856
+ page . waitForTimeout ( 100 ) , // wait for preloading to start
857
+ page . waitForLoadState ( 'networkidle' ) // wait for preloading to finish
858
+ ] ) ;
859
+ expect ( responses . length ) . toEqual ( 1 ) ;
844
860
845
861
// hover
846
- requests . length = 0 ;
847
- await page . locator ( '#hover' ) . dispatchEvent ( 'mousemove' ) ;
848
- await Promise . all ( [ page . waitForTimeout ( 100 ) , page . waitForLoadState ( 'networkidle' ) ] ) ;
849
- expect ( requests . length ) . toBeGreaterThanOrEqual ( 1 ) ;
862
+ responses . length = 0 ;
863
+ await page . locator ( '#hover' ) . hover ( ) ;
864
+ await page . locator ( '#hover' ) . dispatchEvent ( 'touchstart' ) ;
865
+ await Promise . all ( [
866
+ page . waitForTimeout ( 100 ) , // wait for preloading to start
867
+ page . waitForLoadState ( 'networkidle' ) // wait for preloading to finish
868
+ ] ) ;
869
+ expect ( responses . length ) . toEqual ( 1 ) ;
850
870
851
871
// tap
852
- requests . length = 0 ;
872
+ responses . length = 0 ;
873
+ await page . locator ( '#tap' ) . hover ( ) ;
853
874
await page . locator ( '#tap' ) . dispatchEvent ( 'touchstart' ) ;
854
- await Promise . all ( [ page . waitForTimeout ( 100 ) , page . waitForLoadState ( 'networkidle' ) ] ) ;
855
- expect ( requests . length ) . toBeGreaterThanOrEqual ( 1 ) ;
875
+ await Promise . all ( [
876
+ page . waitForTimeout ( 100 ) , // wait for preloading to start
877
+ page . waitForLoadState ( 'networkidle' ) // wait for preloading to finish
878
+ ] ) ;
879
+ expect ( responses . length ) . toEqual ( 1 ) ;
856
880
} ) ;
857
881
858
882
test ( 'data-sveltekit-preload-data' , async ( { page } ) => {
@@ -875,7 +899,7 @@ test.describe('data-sveltekit attributes', () => {
875
899
} ) ;
876
900
877
901
await page . goto ( '/data-sveltekit/preload-data' ) ;
878
- await page . locator ( '#one' ) . dispatchEvent ( 'mousemove' ) ;
902
+ await page . locator ( '#one' ) . hover ( ) ;
879
903
await Promise . all ( [
880
904
page . waitForTimeout ( 100 ) , // wait for preloading to start
881
905
page . waitForLoadState ( 'networkidle' ) // wait for preloading to finish
@@ -884,7 +908,7 @@ test.describe('data-sveltekit attributes', () => {
884
908
885
909
requests . length = 0 ;
886
910
await page . goto ( '/data-sveltekit/preload-data' ) ;
887
- await page . locator ( '#two' ) . dispatchEvent ( 'mousemove' ) ;
911
+ await page . locator ( '#two' ) . hover ( ) ;
888
912
await Promise . all ( [
889
913
page . waitForTimeout ( 100 ) , // wait for preloading to start
890
914
page . waitForLoadState ( 'networkidle' ) // wait for preloading to finish
@@ -893,12 +917,22 @@ test.describe('data-sveltekit attributes', () => {
893
917
894
918
requests . length = 0 ;
895
919
await page . goto ( '/data-sveltekit/preload-data' ) ;
896
- await page . locator ( '#three' ) . dispatchEvent ( 'mousemove' ) ;
920
+ await page . locator ( '#three' ) . hover ( ) ;
897
921
await Promise . all ( [
898
922
page . waitForTimeout ( 100 ) , // wait for preloading to start
899
923
page . waitForLoadState ( 'networkidle' ) // wait for preloading to finish
900
924
] ) ;
901
925
expect ( requests . length ) . toBe ( 0 ) ;
926
+
927
+ requests . length = 0 ;
928
+ await page . goto ( '/data-sveltekit/preload-data' ) ;
929
+ await page . locator ( '#tap' ) . hover ( ) ;
930
+ await page . locator ( '#tap' ) . dispatchEvent ( 'touchstart' ) ;
931
+ await Promise . all ( [
932
+ page . waitForTimeout ( 100 ) , // wait for preloading to start
933
+ page . waitForLoadState ( 'networkidle' ) // wait for preloading to finish
934
+ ] ) ;
935
+ expect ( requests . length ) . toBe ( 1 ) ;
902
936
} ) ;
903
937
904
938
test ( 'data-sveltekit-preload-data network failure does not trigger navigation' , async ( {
0 commit comments