@@ -576,11 +576,15 @@ test.describe('Invalidation', () => {
576
576
expect ( await page . textContent ( 'h1' ) ) . toBe ( 'a: 0, b: 1' ) ;
577
577
578
578
await page . click ( 'button.invalidateall' ) ;
579
- await page . evaluate ( ( ) => window . promise ) ;
579
+ await page . evaluate (
580
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
581
+ ) ;
580
582
expect ( await page . textContent ( 'h1' ) ) . toBe ( 'a: 2, b: 3' ) ;
581
583
582
584
await page . click ( 'button.invalidateall' ) ;
583
- await page . evaluate ( ( ) => window . promise ) ;
585
+ await page . evaluate (
586
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
587
+ ) ;
584
588
expect ( await page . textContent ( 'h1' ) ) . toBe ( 'a: 4, b: 5' ) ;
585
589
} ) ;
586
590
@@ -591,7 +595,9 @@ test.describe('Invalidation', () => {
591
595
expect ( await page . textContent ( 'h1' ) ) . toBe ( 'a: 0, b: 1' ) ;
592
596
593
597
await page . click ( 'button.goto' ) ;
594
- await page . evaluate ( ( ) => window . promise ) ;
598
+ await page . evaluate (
599
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
600
+ ) ;
595
601
expect ( await page . textContent ( 'h1' ) ) . toBe ( 'a: 2, b: 3' ) ;
596
602
} ) ;
597
603
@@ -633,14 +639,18 @@ test.describe('Invalidation', () => {
633
639
expect ( shared ) . toBeDefined ( ) ;
634
640
635
641
await page . click ( 'button.server' ) ;
636
- await page . evaluate ( ( ) => window . promise ) ;
642
+ await page . evaluate (
643
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
644
+ ) ;
637
645
const next_server = await page . textContent ( 'p.server' ) ;
638
646
const next_shared = await page . textContent ( 'p.shared' ) ;
639
647
expect ( server ) . not . toBe ( next_server ) ;
640
648
expect ( shared ) . not . toBe ( next_shared ) ;
641
649
642
650
await page . click ( 'button.neither' ) ;
643
- await page . evaluate ( ( ) => window . promise ) ;
651
+ await page . evaluate (
652
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
653
+ ) ;
644
654
expect ( await page . textContent ( 'p.server' ) ) . toBe ( next_server ) ;
645
655
expect ( await page . textContent ( 'p.shared' ) ) . toBe ( next_shared ) ;
646
656
} ) ;
@@ -665,14 +675,18 @@ test.describe('Invalidation', () => {
665
675
expect ( shared ) . toBeDefined ( ) ;
666
676
667
677
await page . click ( 'button.shared' ) ;
668
- await page . evaluate ( ( ) => window . promise ) ;
678
+ await page . evaluate (
679
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
680
+ ) ;
669
681
const next_server = await page . textContent ( 'p.server' ) ;
670
682
const next_shared = await page . textContent ( 'p.shared' ) ;
671
683
expect ( server ) . toBe ( next_server ) ;
672
684
expect ( shared ) . not . toBe ( next_shared ) ;
673
685
674
686
await page . click ( 'button.neither' ) ;
675
- await page . evaluate ( ( ) => window . promise ) ;
687
+ await page . evaluate (
688
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
689
+ ) ;
676
690
expect ( await page . textContent ( 'p.server' ) ) . toBe ( next_server ) ;
677
691
expect ( await page . textContent ( 'p.shared' ) ) . toBe ( next_shared ) ;
678
692
} ) ;
@@ -689,7 +703,9 @@ test.describe('Invalidation', () => {
689
703
expect ( shared ) . toBeDefined ( ) ;
690
704
691
705
await page . click ( 'button.server' ) ;
692
- await page . evaluate ( ( ) => window . promise ) ;
706
+ await page . evaluate (
707
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
708
+ ) ;
693
709
const next_layout = await page . textContent ( 'p.layout' ) ;
694
710
const next_server = await page . textContent ( 'p.server' ) ;
695
711
const next_shared = await page . textContent ( 'p.shared' ) ;
@@ -698,7 +714,9 @@ test.describe('Invalidation', () => {
698
714
expect ( shared ) . not . toBe ( next_shared ) ;
699
715
700
716
await page . click ( 'button.neither' ) ;
701
- await page . evaluate ( ( ) => window . promise ) ;
717
+ await page . evaluate (
718
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
719
+ ) ;
702
720
expect ( await page . textContent ( 'p.layout' ) ) . toBe ( next_layout ) ;
703
721
expect ( await page . textContent ( 'p.server' ) ) . toBe ( next_server ) ;
704
722
expect ( await page . textContent ( 'p.shared' ) ) . toBe ( next_shared ) ;
@@ -714,7 +732,9 @@ test.describe('Invalidation', () => {
714
732
expect ( shared ) . toBeDefined ( ) ;
715
733
716
734
await page . click ( 'button.shared' ) ;
717
- await page . evaluate ( ( ) => window . promise ) ;
735
+ await page . evaluate (
736
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
737
+ ) ;
718
738
const next_layout = await page . textContent ( 'p.layout' ) ;
719
739
const next_server = await page . textContent ( 'p.server' ) ;
720
740
const next_shared = await page . textContent ( 'p.shared' ) ;
@@ -723,7 +743,9 @@ test.describe('Invalidation', () => {
723
743
expect ( shared ) . not . toBe ( next_shared ) ;
724
744
725
745
await page . click ( 'button.neither' ) ;
726
- await page . evaluate ( ( ) => window . promise ) ;
746
+ await page . evaluate (
747
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
748
+ ) ;
727
749
expect ( await page . textContent ( 'p.layout' ) ) . toBe ( next_layout ) ;
728
750
expect ( await page . textContent ( 'p.server' ) ) . toBe ( next_server ) ;
729
751
expect ( await page . textContent ( 'p.shared' ) ) . toBe ( next_shared ) ;
@@ -739,7 +761,9 @@ test.describe('Invalidation', () => {
739
761
expect ( shared ) . toBeDefined ( ) ;
740
762
741
763
await page . click ( 'button.specified' ) ;
742
- await page . evaluate ( ( ) => window . promise ) ;
764
+ await page . evaluate (
765
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
766
+ ) ;
743
767
const next_layout = await page . textContent ( 'p.layout' ) ;
744
768
const next_server = await page . textContent ( 'p.server' ) ;
745
769
const next_shared = await page . textContent ( 'p.shared' ) ;
@@ -748,7 +772,9 @@ test.describe('Invalidation', () => {
748
772
expect ( shared ) . not . toBe ( next_shared ) ;
749
773
750
774
await page . click ( 'button.neither' ) ;
751
- await page . evaluate ( ( ) => window . promise ) ;
775
+ await page . evaluate (
776
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
777
+ ) ;
752
778
expect ( await page . textContent ( 'p.layout' ) ) . toBe ( next_layout ) ;
753
779
expect ( await page . textContent ( 'p.server' ) ) . toBe ( next_server ) ;
754
780
expect ( await page . textContent ( 'p.shared' ) ) . toBe ( next_shared ) ;
@@ -812,14 +838,18 @@ test.describe('Invalidation', () => {
812
838
expect ( _page ) . toBeDefined ( ) ;
813
839
814
840
await page . click ( 'button.invalidate' ) ;
815
- await page . evaluate ( ( ) => window . promise ) ;
841
+ await page . evaluate (
842
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
843
+ ) ;
816
844
const next_layout_1 = await page . textContent ( 'p.layout' ) ;
817
845
const next_page_1 = await page . textContent ( 'p.page' ) ;
818
846
expect ( next_layout_1 ) . not . toBe ( layout ) ;
819
847
expect ( next_page_1 ) . toBe ( _page ) ;
820
848
821
849
await page . click ( 'button.goto' ) ;
822
- await page . evaluate ( ( ) => window . promise ) ;
850
+ await page . evaluate (
851
+ ( ) => /** @type {Window & typeof globalThis & { promise: Promise<void> } } */ ( window ) . promise
852
+ ) ;
823
853
const next_layout_2 = await page . textContent ( 'p.layout' ) ;
824
854
const next_page_2 = await page . textContent ( 'p.page' ) ;
825
855
expect ( next_layout_2 ) . toBe ( next_layout_1 ) ;
@@ -1113,7 +1143,7 @@ test.describe('Content negotiation', () => {
1113
1143
test ( '+server.js next to +page.svelte works' , async ( { page } ) => {
1114
1144
const response = await page . goto ( '/routing/content-negotiation' ) ;
1115
1145
1116
- expect ( response . headers ( ) [ 'vary' ] ) . toBe ( 'Accept' ) ;
1146
+ expect ( response ? .headers ( ) [ 'vary' ] ) . toBe ( 'Accept' ) ;
1117
1147
expect ( await page . textContent ( 'p' ) ) . toBe ( 'Hi' ) ;
1118
1148
1119
1149
const pre = page . locator ( 'pre' ) ;
@@ -1143,9 +1173,13 @@ test.describe('env', () => {
1143
1173
1144
1174
test ( 'can access public env in hooks.client.js' , async ( { page } ) => {
1145
1175
await page . goto ( '/' ) ;
1146
- expect ( await page . evaluate ( ( ) => window . PUBLIC_DYNAMIC ) ) . toBe (
1147
- 'accessible anywhere/evaluated at run time'
1148
- ) ;
1176
+ expect (
1177
+ await page . evaluate (
1178
+ ( ) =>
1179
+ /** @type {Window & typeof globalThis & { PUBLIC_DYNAMIC: string } } */ ( window )
1180
+ . PUBLIC_DYNAMIC
1181
+ )
1182
+ ) . toBe ( 'accessible anywhere/evaluated at run time' ) ;
1149
1183
} ) ;
1150
1184
1151
1185
test ( 'uses correct dynamic env when navigating from prerendered page' , async ( {
@@ -1210,10 +1244,10 @@ test.describe('Streaming', () => {
1210
1244
expect ( page . locator ( 'p.loadingsuccess' ) ) . toBeVisible ( ) ;
1211
1245
expect ( page . locator ( 'p.loadingfail' ) ) . toBeVisible ( ) ;
1212
1246
1213
- await expect ( page . locator ( 'p.success' , { timeout : 15000 } ) ) . toHaveText ( 'success' ) ;
1214
- await expect ( page . locator ( 'p.fail' , { timeout : 15000 } ) ) . toHaveText (
1215
- 'fail (500 Internal Error)'
1216
- ) ;
1247
+ await expect ( page . locator ( 'p.success' ) ) . toHaveText ( 'success' , { timeout : 15000 } ) ;
1248
+ await expect ( page . locator ( 'p.fail' ) ) . toHaveText ( 'fail (500 Internal Error)' , {
1249
+ timeout : 15000
1250
+ } ) ;
1217
1251
expect ( page . locator ( 'p.loadingsuccess' ) ) . toBeHidden ( ) ;
1218
1252
expect ( page . locator ( 'p.loadingfail' ) ) . toBeHidden ( ) ;
1219
1253
} ) ;
@@ -1297,12 +1331,13 @@ test.describe('Assets', () => {
1297
1331
1298
1332
expect (
1299
1333
await page . evaluate ( ( ) => {
1334
+ /** @type {HTMLLinkElement[] } */
1300
1335
const links = Array . from ( document . head . querySelectorAll ( 'link[rel=stylesheet]' ) ) ;
1301
1336
1302
1337
for ( let i = 0 ; i < links . length ; ) {
1303
1338
const link = links . shift ( ) ;
1304
- const asset_name = link . href . split ( '/' ) . at ( - 1 ) ;
1305
- if ( links . some ( ( link ) => link . href . includes ( asset_name ) ) ) {
1339
+ const asset_name = link ? .href . split ( '/' ) . at ( - 1 ) ;
1340
+ if ( asset_name && links . some ( ( link ) => link . href . includes ( asset_name ) ) ) {
1306
1341
return false ;
1307
1342
}
1308
1343
}
@@ -1388,7 +1423,7 @@ test.describe('Shallow routing', () => {
1388
1423
await page . goto ( '/shallow-routing/push-state' ) ;
1389
1424
await expect ( page . locator ( 'p' ) ) . toHaveText ( 'active: false' ) ;
1390
1425
1391
- const now = await page . locator ( 'span' ) . textContent ( ) ;
1426
+ const now = /** @type { string } */ ( await page . locator ( 'span' ) . textContent ( ) ) ;
1392
1427
1393
1428
await page . locator ( '[data-id="two"]' ) . click ( ) ;
1394
1429
expect ( page . url ( ) ) . toBe ( `${ baseURL } /shallow-routing/push-state/a` ) ;
0 commit comments