@@ -129,73 +129,52 @@ class PlaywrightRunner extends JestRunner {
129129 const { browsers, devices, connectOptions, useDefaultBrowserType } = config
130130 const pwTests : Test [ ] = [ ]
131131 for ( const test of tests ) {
132- if ( useDefaultBrowserType ) {
133- const { devices : availableDevices , instance } = getPlaywrightInstance ( )
132+ for ( const browser of browsers ) {
133+ const browserType = getBrowserType (
134+ typeof browser === 'string' ? browser : browser . name ,
135+ )
136+ const browserConfig =
137+ typeof browser === 'string'
138+ ? config
139+ : deepMerge ( config , browser || { } )
140+ checkBrowserEnv ( browserType )
141+ const { devices : availableDevices , instance } = getPlaywrightInstance (
142+ browserType ,
143+ )
134144 const resultDevices = getDevices ( devices , availableDevices )
145+ const key =
146+ typeof browser === 'string'
147+ ? browser
148+ : generateKey ( browser . name , browserConfig )
149+ const wsEndpoint : WsEndpointType = await this . launchServer (
150+ browserConfig ,
151+ getBrowserOptions ( browserType , connectOptions ) ?. wsEndpoint || null ,
152+ browserType ,
153+ key ,
154+ instance as GenericBrowser ,
155+ )
135156
136157 const browserTest = {
137158 test : test as JestPlaywrightTest ,
138- config,
159+ config : browserConfig ,
160+ wsEndpoint,
161+ browser : browserType ,
139162 }
140- if ( resultDevices . length ) {
141- for ( const device of resultDevices ) {
142- const browser = getDeviceBrowserType ( device , availableDevices )
143- const wsEndpoint : WsEndpointType = await this . launchServer (
144- config ,
145- getBrowserOptions ( browser , connectOptions ) ?. wsEndpoint || null ,
146- browser ,
147- browser ,
148- ( instance as Record < BrowserType , GenericBrowser > ) [ browser ] ,
149- )
150163
164+ if ( resultDevices . length ) {
165+ resultDevices . forEach ( ( device : DeviceType ) => {
151166 checkDevice ( device , availableDevices )
152-
153- pwTests . push (
154- getBrowserTest ( { ...browserTest , browser, wsEndpoint, device } ) ,
155- )
156- }
157- }
158- } else {
159- for ( const browser of browsers ) {
160- const browserType = getBrowserType (
161- typeof browser === 'string' ? browser : browser . name ,
162- )
163- const browserConfig =
164- typeof browser === 'string'
165- ? config
166- : deepMerge ( config , browser || { } )
167- checkBrowserEnv ( browserType )
168- const { devices : availableDevices , instance } = getPlaywrightInstance (
169- browserType ,
170- )
171- const resultDevices = getDevices ( devices , availableDevices )
172- const key =
173- typeof browser === 'string'
174- ? browser
175- : generateKey ( browser . name , browserConfig )
176- const wsEndpoint : WsEndpointType = await this . launchServer (
177- browserConfig ,
178- getBrowserOptions ( browserType , connectOptions ) ?. wsEndpoint || null ,
179- browserType ,
180- key ,
181- instance as GenericBrowser ,
182- )
183-
184- const browserTest = {
185- test : test as JestPlaywrightTest ,
186- config : browserConfig ,
187- wsEndpoint,
188- browser : browserType ,
189- }
190-
191- if ( resultDevices . length ) {
192- resultDevices . forEach ( ( device : DeviceType ) => {
193- checkDevice ( device , availableDevices )
194- pwTests . push ( getBrowserTest ( { ...browserTest , device } ) )
195- } )
196- } else {
197- pwTests . push ( getBrowserTest ( { ...browserTest , device : null } ) )
198- }
167+ if ( useDefaultBrowserType ) {
168+ const deviceBrowser = getDeviceBrowserType (
169+ device ! ,
170+ availableDevices ,
171+ )
172+ if ( deviceBrowser !== null && deviceBrowser !== browser ) return
173+ }
174+ pwTests . push ( getBrowserTest ( { ...browserTest , device } ) )
175+ } )
176+ } else {
177+ pwTests . push ( getBrowserTest ( { ...browserTest , device : null } ) )
199178 }
200179 }
201180 }
0 commit comments