@@ -179,10 +179,14 @@ export class PlaywrightBrowserProvider implements BrowserProvider {
179179 const ids = sessionIds . get ( sessionId ) || [ ]
180180 ids . push ( moduleUrl . href )
181181 sessionIds . set ( sessionId , ids )
182- idPreficates . set ( moduleUrl . href , predicate )
182+ idPreficates . set ( predicateKey ( sessionId , moduleUrl . href ) , predicate )
183183 return predicate
184184 }
185185
186+ function predicateKey ( sessionId : string , url : string ) {
187+ return `${ sessionId } :${ url } `
188+ }
189+
186190 return {
187191 register : async ( sessionId : string , module : MockedModule ) : Promise < void > => {
188192 const page = this . getPage ( sessionId )
@@ -200,17 +204,17 @@ export class PlaywrightBrowserProvider implements BrowserProvider {
200204 // https://github.com/microsoft/playwright/issues/18318
201205 const isWebkit = this . browserName === 'webkit'
202206 if ( isWebkit ) {
203- const url = module . type === 'redirect'
204- ? ( ( ) => {
205- // url has http:// which vite.trasnformRequest doesn't understand
206- const url = new URL ( module . redirect )
207- return url . href . slice ( url . origin . length )
208- } ) ( )
209- : ( ( ) => {
210- const url = new URL ( route . request ( ) . url ( ) )
211- url . searchParams . set ( 'mock' , module . type )
212- return url . href . slice ( url . origin . length )
213- } ) ( )
207+ let url : string
208+ if ( module . type === 'redirect' ) {
209+ const redirect = new URL ( module . redirect )
210+ url = redirect . href . slice ( redirect . origin . length )
211+ }
212+ else {
213+ const request = new URL ( route . request ( ) . url ( ) )
214+ request . searchParams . set ( 'mock' , module . type )
215+ url = request . href . slice ( request . origin . length )
216+ }
217+
214218 const result = await this . project . browser ! . vite . transformRequest ( url ) . catch ( ( ) => null )
215219 if ( ! result ) {
216220 return route . continue ( )
@@ -252,18 +256,20 @@ export class PlaywrightBrowserProvider implements BrowserProvider {
252256 } ,
253257 delete : async ( sessionId : string , id : string ) : Promise < void > => {
254258 const page = this . getPage ( sessionId )
255- const predicate = idPreficates . get ( id )
259+ const key = predicateKey ( sessionId , id )
260+ const predicate = idPreficates . get ( key )
256261 if ( predicate ) {
257- await page . unroute ( predicate ) . finally ( ( ) => idPreficates . delete ( id ) )
262+ await page . unroute ( predicate ) . finally ( ( ) => idPreficates . delete ( key ) )
258263 }
259264 } ,
260265 clear : async ( sessionId : string ) : Promise < void > => {
261266 const page = this . getPage ( sessionId )
262267 const ids = sessionIds . get ( sessionId ) || [ ]
263268 const promises = ids . map ( ( id ) => {
264- const predicate = idPreficates . get ( id )
269+ const key = predicateKey ( sessionId , id )
270+ const predicate = idPreficates . get ( key )
265271 if ( predicate ) {
266- return page . unroute ( predicate ) . finally ( ( ) => idPreficates . delete ( id ) )
272+ return page . unroute ( predicate ) . finally ( ( ) => idPreficates . delete ( key ) )
267273 }
268274 return null
269275 } )
0 commit comments