@@ -100,16 +100,35 @@ export const startBrowsers = async ({
100100 ) ;
101101 const wsEndpoints = browsers . map ( ( browser ) => browser . wsEndpoint ( ) ) ;
102102 saveWsEndpoints ( wsEndpoints ) ;
103+ browsers . forEach ( ( browser ) => browser . disconnect ( ) ) ;
103104 return browsers ;
104105} ;
105106
106107export const closeBrowsers = async (
107108 config : JestPuppeteerConfig ,
108109 browsers : Browser [ ] ,
109110) => {
110- await Promise . all (
111- browsers . map ( async ( browser ) => closeBrowser ( config , browser ) ) ,
112- ) ;
111+ if ( config . connect ) {
112+ await Promise . all (
113+ browsers . map ( async ( browser ) => closeBrowser ( config , browser ) ) ,
114+ ) ;
115+ }
116+
117+ const closeRequests : Promise < void > [ ] = [ ]
118+ const puppeteer = getPuppeteer ( ) ;
119+ const wsEndpoints = readWsEndpoints ( ) ;
120+ while ( wsEndpoints . length ) {
121+ const wsEndpoint = wsEndpoints . pop ( ) !
122+ closeRequests . push ( puppeteer . connect ( {
123+ ...( config . launch ?. browser === "firefox" && { protocol : "webDriverBiDi" } ) ,
124+ ...config . connect ,
125+ ...config . launch ,
126+ browserURL : undefined ,
127+ browserWSEndpoint : wsEndpoint ,
128+ } ) . then ( ( browser ) => browser . close ( ) ) )
129+ }
130+ await Promise . all ( closeRequests ) ;
131+ saveWsEndpoints ( [ ] )
113132} ;
114133
115134const getWorkerWsEndpoint = ( ) : string => {
@@ -128,6 +147,7 @@ export const connectBrowserFromWorker = async (
128147 const wsEndpoint = getWorkerWsEndpoint ( ) ;
129148 const puppeteer = getPuppeteer ( ) ;
130149 return puppeteer . connect ( {
150+ ...( config . launch ?. browser === "firefox" && { protocol : "webDriverBiDi" } ) ,
131151 ...config . connect ,
132152 ...config . launch ,
133153 browserURL : undefined ,
0 commit comments