@@ -8,30 +8,33 @@ type RedisClientFixture = {
88
99type RedisRequestIdFixture = {
1010 redisRequestId : string ;
11- nonBlockingNavigateWithRequestId : ( path : string ) => Promise < Response | null >
12- }
11+ nonBlockingNavigateWithRequestId : ( path : string ) => Promise < Response | null > ;
12+ } ;
1313
1414type RedisReceiverPageFixture = {
1515 pagePath : string ;
16- }
16+ } ;
1717
1818export type RedisReceiverControllerFixture = {
1919 sendRedisValue : ( key : string , value : unknown ) => Promise < void > ;
2020 sendRedisItemValue : ( itemIndex : number , value : unknown ) => Promise < void > ;
2121 matchPageSnapshot : ( snapshotPath : string ) => Promise < void > ;
2222 waitForConsoleMessage : ( msg : string ) => Promise < void > ;
2323 getNetworkRequests : ( requestUrlPattern : RegExp ) => Promise < Request [ ] > ;
24- }
24+ } ;
2525
2626const redisControlledTest = base . extend < RedisRequestIdFixture , RedisClientFixture > ( {
27- redisClient : [ async ( { } , use , workerInfo ) => {
28- console . log ( `Creating Redis Client at Worker ${ workerInfo . workerIndex } ` )
29- const url = process . env . REDIS_URL || 'redis://localhost:6379' ;
30- const client = createClient ( { url } ) ;
31- await client . connect ( ) ;
32- await use ( client as RedisClientType ) ;
33- await client . quit ( ) ;
34- } , { scope : 'worker' } ] ,
27+ redisClient : [
28+ async ( { } , use , workerInfo ) => {
29+ console . log ( `Creating Redis Client at Worker ${ workerInfo . workerIndex } ` ) ;
30+ const url = process . env . REDIS_URL || 'redis://localhost:6379' ;
31+ const client = createClient ( { url } ) ;
32+ await client . connect ( ) ;
33+ await use ( client as RedisClientType ) ;
34+ await client . quit ( ) ;
35+ } ,
36+ { scope : 'worker' } ,
37+ ] ,
3538
3639 redisRequestId : async ( { redisClient } , use ) => {
3740 const id = randomUUID ( ) ;
@@ -47,89 +50,104 @@ const redisControlledTest = base.extend<RedisRequestIdFixture, RedisClientFixtur
4750 await use ( ( path ) => {
4851 const requestIdParam = `request_id=${ redisRequestId } ` ;
4952 const fullPath = path . includes ( '?' ) ? `${ path } &${ requestIdParam } ` : `${ path } ?${ requestIdParam } ` ;
50- return page . goto ( fullPath , { waitUntil : " commit" } )
51- } )
53+ return page . goto ( fullPath , { waitUntil : ' commit' } ) ;
54+ } ) ;
5255 } ,
5356} ) ;
5457
5558const redisReceiverPageController = redisControlledTest . extend < RedisReceiverControllerFixture > ( {
56- sendRedisValue : async ( { redisClient, redisRequestId } , use ) => {
57- await use ( async ( key , value ) => {
59+ sendRedisValue : async ( { redisClient, redisRequestId } , use ) => {
60+ await use ( async ( key , value ) => {
5861 await redisClient . xAdd ( `stream:${ redisRequestId } ` , '*' , { [ `:${ key } ` ] : JSON . stringify ( value ) } ) ;
59- } )
62+ } ) ;
6063 } ,
61- sendRedisItemValue : async ( { sendRedisValue } , use ) => {
62- await use ( async ( itemIndex , value ) => {
64+ sendRedisItemValue : async ( { sendRedisValue } , use ) => {
65+ await use ( async ( itemIndex , value ) => {
6366 await sendRedisValue ( `Item${ itemIndex } ` , value ) ;
64- } )
67+ } ) ;
6568 } ,
66- matchPageSnapshot : async ( { page } , use ) => {
67- await use ( async ( snapshotPath ) => {
69+ matchPageSnapshot : async ( { page } , use ) => {
70+ await use ( async ( snapshotPath ) => {
6871 await expect ( page . locator ( '.redis-receiver-container:visible' ) ) . toBeVisible ( ) ;
69- await expect ( page . locator ( '.redis-receiver-container:visible' ) . first ( ) ) . toMatchAriaSnapshot ( { name : `${ snapshotPath } .aria.yml` } ) ;
70- } )
72+ await expect ( page . locator ( '.redis-receiver-container:visible' ) . first ( ) ) . toMatchAriaSnapshot ( {
73+ name : `${ snapshotPath } .aria.yml` ,
74+ } ) ;
75+ } ) ;
7176 } ,
72- waitForConsoleMessage : async ( { page } , use ) => {
73- await use ( async ( msg ) => {
74- if ( ( await page . consoleMessages ( ) ) . find ( consoleMsg => consoleMsg . text ( ) . includes ( msg ) ) ) {
77+ waitForConsoleMessage : async ( { page } , use ) => {
78+ await use ( async ( msg ) => {
79+ if ( ( await page . consoleMessages ( ) ) . find ( ( consoleMsg ) => consoleMsg . text ( ) . includes ( msg ) ) ) {
7580 return ;
7681 }
7782
7883 await page . waitForEvent ( 'console' , {
7984 predicate : ( consoleMsg ) => consoleMsg . text ( ) . includes ( msg ) ,
80- } )
81- } )
85+ } ) ;
86+ } ) ;
8287 } ,
83- getNetworkRequests : async ( { page } , use ) => {
84- await use ( async ( requestUrlPattern ) => {
85- return ( await page . requests ( ) ) . filter ( request => request . url ( ) . match ( requestUrlPattern ) )
86- } )
87- }
88- } )
88+ getNetworkRequests : async ( { page } , use ) => {
89+ await use ( async ( requestUrlPattern ) => {
90+ return ( await page . requests ( ) ) . filter ( ( request ) => request . url ( ) . match ( requestUrlPattern ) ) ;
91+ } ) ;
92+ } ,
93+ } ) ;
8994
9095const redisReceiverPageTest = redisReceiverPageController . extend < RedisReceiverPageFixture > ( {
91- pagePath : [ async ( { nonBlockingNavigateWithRequestId } , use ) => {
92- const pagePath = '/redis_receiver_for_testing' ;
93- await nonBlockingNavigateWithRequestId ( pagePath ) ;
94- await use ( pagePath ) ;
95- } , { auto : true } ]
96- } )
97-
98- const redisReceiverPageWithAsyncClientComponentTest = redisReceiverPageController . extend < RedisReceiverPageFixture > ( {
99- pagePath : [ async ( { page, nonBlockingNavigateWithRequestId, sendRedisValue } , use ) => {
100- const pagePath = '/redis_receiver_for_testing?async_toggle_container=true' ;
101- await nonBlockingNavigateWithRequestId ( pagePath ) ;
102-
103- await expect ( page . getByText ( "Loading ToggleContainer" ) ) . toBeVisible ( ) ;
104- await expect ( page . locator ( '.toggle-button' ) ) . not . toBeVisible ( ) ;
105-
106- await sendRedisValue ( 'ToggleContainer' , 'anything' ) ;
107- await expect ( page . locator ( '.toggle-button' ) ) . toBeVisible ( ) ;
108- await use ( pagePath ) ;
109- } , { auto : true } ]
110- } )
96+ pagePath : [
97+ async ( { nonBlockingNavigateWithRequestId } , use ) => {
98+ const pagePath = '/redis_receiver_for_testing' ;
99+ await nonBlockingNavigateWithRequestId ( pagePath ) ;
100+ await use ( pagePath ) ;
101+ } ,
102+ { auto : true } ,
103+ ] ,
104+ } ) ;
105+
106+ const redisReceiverPageWithAsyncClientComponentTest =
107+ redisReceiverPageController . extend < RedisReceiverPageFixture > ( {
108+ pagePath : [
109+ async ( { page, nonBlockingNavigateWithRequestId, sendRedisValue } , use ) => {
110+ const pagePath = '/redis_receiver_for_testing?async_toggle_container=true' ;
111+ await nonBlockingNavigateWithRequestId ( pagePath ) ;
112+
113+ await expect ( page . getByText ( 'Loading ToggleContainer' ) ) . toBeVisible ( ) ;
114+ await expect ( page . locator ( '.toggle-button' ) ) . not . toBeVisible ( ) ;
115+
116+ await sendRedisValue ( 'ToggleContainer' , 'anything' ) ;
117+ await expect ( page . locator ( '.toggle-button' ) ) . toBeVisible ( ) ;
118+ await use ( pagePath ) ;
119+ } ,
120+ { auto : true } ,
121+ ] ,
122+ } ) ;
111123
112124const redisReceiverInsideRouterPageTest = redisReceiverPageController . extend < RedisReceiverPageFixture > ( {
113- pagePath : [ async ( { nonBlockingNavigateWithRequestId } , use ) => {
114- const pagePath = '/server_router/redis-receiver-for-testing' ;
115- await nonBlockingNavigateWithRequestId ( pagePath ) ;
116- await use ( pagePath ) ;
117- } , { auto : true } ]
118- } )
125+ pagePath : [
126+ async ( { nonBlockingNavigateWithRequestId } , use ) => {
127+ const pagePath = '/server_router/redis-receiver-for-testing' ;
128+ await nonBlockingNavigateWithRequestId ( pagePath ) ;
129+ await use ( pagePath ) ;
130+ } ,
131+ { auto : true } ,
132+ ] ,
133+ } ) ;
119134
120135const redisReceiverPageAfterNavigationTest = redisReceiverPageController . extend < RedisReceiverPageFixture > ( {
121- pagePath : [ async ( { nonBlockingNavigateWithRequestId, page } , use ) => {
122- await nonBlockingNavigateWithRequestId ( '/server_router/simple-server-component' ) ;
123- await expect ( page . getByText ( "Post 1" ) ) . toBeVisible ( { timeout : 3000 } ) ;
124- await page . getByText ( "Redis Receiver For Testing" ) . click ( ) ;
125- await use ( '/server_router/redis-receiver-for-testing' ) ;
126- } , { auto : true } ]
127- } )
136+ pagePath : [
137+ async ( { nonBlockingNavigateWithRequestId, page } , use ) => {
138+ await nonBlockingNavigateWithRequestId ( '/server_router/simple-server-component' ) ;
139+ await expect ( page . getByText ( 'Post 1' ) ) . toBeVisible ( { timeout : 3000 } ) ;
140+ await page . getByText ( 'Redis Receiver For Testing' ) . click ( ) ;
141+ await use ( '/server_router/redis-receiver-for-testing' ) ;
142+ } ,
143+ { auto : true } ,
144+ ] ,
145+ } ) ;
128146
129147export {
130148 redisReceiverPageController ,
131149 redisReceiverPageTest ,
132150 redisReceiverInsideRouterPageTest ,
133151 redisReceiverPageAfterNavigationTest ,
134152 redisReceiverPageWithAsyncClientComponentTest ,
135- } ;
153+ } ;
0 commit comments