@@ -50,10 +50,8 @@ describe('navigation', () => {
5050 beforeEach ( ( ) => {
5151 const navigation = new FakeNavigation ( document , 'https://test.com' ) ;
5252 const navigateEvents : FakeNavigateEvent [ ] = [ ] ;
53- let nextNavigateEventResolve ! : ( value : FakeNavigateEvent ) => void ;
54- let nextNavigateEventPromise = new Promise < FakeNavigateEvent > ( ( resolve ) => {
55- nextNavigateEventResolve = resolve ;
56- } ) ;
53+ let { promise : nextNavigateEventPromise , resolve : nextNavigateEventResolve } =
54+ Promise . withResolvers < FakeNavigateEvent > ( ) ;
5755 const navigationCurrentEntryChangeEvents : FakeNavigationCurrentEntryChangeEvent [ ] = [ ] ;
5856 const popStateEvents : PopStateEvent [ ] = [ ] ;
5957 const pendingInterceptOptions : NavigationInterceptOptions [ ] = [ ] ;
@@ -62,9 +60,8 @@ describe('navigation', () => {
6260 navigation . addEventListener ( 'navigate' , ( event : Event ) => {
6361 const navigateEvent = event as FakeNavigateEvent ;
6462 nextNavigateEventResolve ( navigateEvent ) ;
65- nextNavigateEventPromise = new Promise < FakeNavigateEvent > ( ( resolve ) => {
66- nextNavigateEventResolve = resolve ;
67- } ) ;
63+ ( { promise : nextNavigateEventPromise , resolve : nextNavigateEventResolve } =
64+ Promise . withResolvers < FakeNavigateEvent > ( ) ) ;
6865 locals . navigateEvents . push ( navigateEvent ) ;
6966 const interceptOptions = pendingInterceptOptions . shift ( ) ;
7067 if ( interceptOptions ) {
@@ -378,10 +375,8 @@ describe('navigation', () => {
378375 } ) ;
379376
380377 it ( 'push URL with handler' , async ( ) => {
381- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
382- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
383- handlerFinishedResolve = resolve ;
384- } ) ;
378+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
379+ Promise . withResolvers < undefined > ( ) ;
385380 locals . pendingInterceptOptions . push ( {
386381 handler : ( ) => handlerFinished ,
387382 } ) ;
@@ -406,10 +401,8 @@ describe('navigation', () => {
406401 } ) ;
407402
408403 it ( 'replace URL with handler' , async ( ) => {
409- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
410- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
411- handlerFinishedResolve = resolve ;
412- } ) ;
404+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
405+ Promise . withResolvers < undefined > ( ) ;
413406 locals . pendingInterceptOptions . push ( {
414407 handler : ( ) => handlerFinished ,
415408 } ) ;
@@ -436,14 +429,10 @@ describe('navigation', () => {
436429 } ) ;
437430
438431 it ( 'deferred commit' , async ( ) => {
439- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
440- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
441- handlerFinishedResolve = resolve ;
442- } ) ;
443- let precommitHandlerFinishedResolve ! : ( ) => void ;
444- const precommitHandlerFinished = new Promise < void > ( ( resolve ) => {
445- precommitHandlerFinishedResolve = resolve ;
446- } ) ;
432+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
433+ Promise . withResolvers < undefined > ( ) ;
434+ const { promise : precommitHandlerFinished , resolve : precommitHandlerFinishedResolve } =
435+ Promise . withResolvers < void > ( ) ;
447436 locals . pendingInterceptOptions . push ( {
448437 handler : ( ) => handlerFinished ,
449438 precommitHandler : ( ) => precommitHandlerFinished ,
@@ -472,10 +461,8 @@ describe('navigation', () => {
472461 } ) ;
473462
474463 it ( 'deferred commit early resolve' , async ( ) => {
475- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
476- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
477- handlerFinishedResolve = resolve ;
478- } ) ;
464+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
465+ Promise . withResolvers < undefined > ( ) ;
479466 locals . pendingInterceptOptions . push ( {
480467 precommitHandler : ( ) => handlerFinished ,
481468 } ) ;
@@ -529,14 +516,10 @@ describe('navigation', () => {
529516 } ) ;
530517
531518 it ( 'deferred commit resolves on finished' , async ( ) => {
532- let handlerFinishedResolve ! : ( ) => void ;
533- let precommitHandlerResolve ! : ( ) => void ;
534- const handlerFinished = new Promise < void > ( ( resolve ) => {
535- handlerFinishedResolve = resolve ;
536- } ) ;
537- const precommitHandlerFinished = new Promise < void > ( ( resolve ) => {
538- precommitHandlerResolve = resolve ;
539- } ) ;
519+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
520+ Promise . withResolvers < void > ( ) ;
521+ const { promise : precommitHandlerFinished , resolve : precommitHandlerResolve } =
522+ Promise . withResolvers < void > ( ) ;
540523 locals . pendingInterceptOptions . push ( {
541524 handler : ( ) => handlerFinished ,
542525 precommitHandler : ( ) => precommitHandlerFinished ,
@@ -623,10 +606,11 @@ describe('navigation', () => {
623606 it ( 'push with handler reject' , async ( ) => {
624607 let handlerFinishedReject ! : ( reason : unknown ) => void ;
625608 locals . pendingInterceptOptions . push ( {
626- handler : ( ) =>
627- new Promise < undefined > ( ( resolve , reject ) => {
628- handlerFinishedReject = reject ;
629- } ) ,
609+ handler : ( ) => {
610+ const { promise, reject} = Promise . withResolvers < undefined > ( ) ;
611+ handlerFinishedReject = reject ;
612+ return promise ;
613+ } ,
630614 } ) ;
631615
632616 const { committed, finished} = locals . navigation . navigate ( '/test' ) ;
@@ -645,10 +629,11 @@ describe('navigation', () => {
645629 it ( 'replace with reject' , async ( ) => {
646630 let handlerFinishedReject ! : ( reason : unknown ) => void ;
647631 locals . pendingInterceptOptions . push ( {
648- handler : ( ) =>
649- new Promise < undefined > ( ( resolve , reject ) => {
650- handlerFinishedReject = reject ;
651- } ) ,
632+ handler : ( ) => {
633+ const { promise, reject} = Promise . withResolvers < undefined > ( ) ;
634+ handlerFinishedReject = reject ;
635+ return promise ;
636+ } ,
652637 } ) ;
653638
654639 const { committed, finished} = locals . navigation . navigate ( '/test' , {
@@ -1108,10 +1093,8 @@ describe('navigation', () => {
11081093
11091094 it ( 'traverses with handler' , async ( ) => {
11101095 const [ firstPageEntry ] = await setUpEntries ( ) ;
1111- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
1112- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
1113- handlerFinishedResolve = resolve ;
1114- } ) ;
1096+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
1097+ Promise . withResolvers < undefined > ( ) ;
11151098 locals . pendingInterceptOptions . push ( {
11161099 handler : ( ) => handlerFinished ,
11171100 } ) ;
@@ -1154,10 +1137,11 @@ describe('navigation', () => {
11541137 const [ firstPageEntry ] = await setUpEntries ( ) ;
11551138 let handlerFinishedReject ! : ( reason : unknown ) => void ;
11561139 locals . pendingInterceptOptions . push ( {
1157- handler : ( ) =>
1158- new Promise < undefined > ( ( resolve , reject ) => {
1159- handlerFinishedReject = reject ;
1160- } ) ,
1140+ handler : ( ) => {
1141+ const { promise, reject} = Promise . withResolvers < undefined > ( ) ;
1142+ handlerFinishedReject = reject ;
1143+ return promise ;
1144+ } ,
11611145 } ) ;
11621146
11631147 const { committed, finished} = locals . navigation . traverseTo ( firstPageEntry . key ) ;
@@ -1675,10 +1659,8 @@ describe('navigation', () => {
16751659 } ) ;
16761660
16771661 it ( 'push URL with handler' , async ( ) => {
1678- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
1679- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
1680- handlerFinishedResolve = resolve ;
1681- } ) ;
1662+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
1663+ Promise . withResolvers < undefined > ( ) ;
16821664 locals . pendingInterceptOptions . push ( {
16831665 handler : ( ) => handlerFinished ,
16841666 } ) ;
@@ -1698,10 +1680,8 @@ describe('navigation', () => {
16981680 } ) ;
16991681
17001682 it ( 'replace URL with handler' , async ( ) => {
1701- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
1702- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
1703- handlerFinishedResolve = resolve ;
1704- } ) ;
1683+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
1684+ Promise . withResolvers < undefined > ( ) ;
17051685 locals . pendingInterceptOptions . push ( {
17061686 handler : ( ) => handlerFinished ,
17071687 } ) ;
@@ -1759,10 +1739,8 @@ describe('navigation', () => {
17591739 } ) ;
17601740
17611741 it ( 'push with handler reject' , async ( ) => {
1762- let handlerFinishedReject ! : ( reason : unknown ) => void ;
1763- const handlerPromise = new Promise < undefined > ( ( resolve , reject ) => {
1764- handlerFinishedReject = reject ;
1765- } ) ;
1742+ const { promise : handlerPromise , reject : handlerFinishedReject } =
1743+ Promise . withResolvers < undefined > ( ) ;
17661744 locals . pendingInterceptOptions . push ( {
17671745 handler : ( ) => handlerPromise ,
17681746 } ) ;
@@ -1779,10 +1757,8 @@ describe('navigation', () => {
17791757 } ) ;
17801758
17811759 it ( 'replace with reject' , async ( ) => {
1782- let handlerFinishedReject ! : ( reason : unknown ) => void ;
1783- const handlerPromise = new Promise < undefined > ( ( resolve , reject ) => {
1784- handlerFinishedReject = reject ;
1785- } ) ;
1760+ const { promise : handlerPromise , reject : handlerFinishedReject } =
1761+ Promise . withResolvers < undefined > ( ) ;
17861762 locals . pendingInterceptOptions . push ( {
17871763 handler : ( ) => handlerPromise ,
17881764 } ) ;
@@ -1951,10 +1927,8 @@ describe('navigation', () => {
19511927
19521928 it ( 'go with handler' , async ( ) => {
19531929 const [ firstPageEntry ] = await setUpEntries ( ) ;
1954- let handlerFinishedResolve ! : ( value : Promise < undefined > | undefined ) => void ;
1955- const handlerFinished = new Promise < undefined > ( ( resolve ) => {
1956- handlerFinishedResolve = resolve ;
1957- } ) ;
1930+ const { promise : handlerFinished , resolve : handlerFinishedResolve } =
1931+ Promise . withResolvers < undefined > ( ) ;
19581932 locals . pendingInterceptOptions . push ( {
19591933 handler : ( ) => handlerFinished ,
19601934 } ) ;
@@ -1990,10 +1964,11 @@ describe('navigation', () => {
19901964 const [ firstPageEntry ] = await setUpEntries ( ) ;
19911965 let handlerFinishedReject ! : ( reason : unknown ) => void ;
19921966 locals . pendingInterceptOptions . push ( {
1993- handler : ( ) =>
1994- new Promise < undefined > ( ( resolve , reject ) => {
1995- handlerFinishedReject = reject ;
1996- } ) ,
1967+ handler : ( ) => {
1968+ const { promise, reject} = Promise . withResolvers < undefined > ( ) ;
1969+ handlerFinishedReject = reject ;
1970+ return promise ;
1971+ } ,
19971972 } ) ;
19981973
19991974 locals . navigation . go ( - 2 ) ;
@@ -2210,10 +2185,7 @@ describe('navigation', () => {
22102185 } ) ;
22112186
22122187 it ( 'waits for async handlers added via addHandler before finished resolves' , async ( ) => {
2213- let resolveHandler ! : ( ) => void ;
2214- const handlerPromise = new Promise < void > ( ( resolve ) => {
2215- resolveHandler = resolve ;
2216- } ) ;
2188+ const { promise : handlerPromise , resolve : resolveHandler } = Promise . withResolvers < void > ( ) ;
22172189 locals . pendingInterceptOptions . push ( {
22182190 precommitHandler : ( controller ) => {
22192191 controller . addHandler ( ( ) => handlerPromise ) ;
0 commit comments