@@ -20,6 +20,7 @@ import {
20
20
extraInlineDeps ,
21
21
} from '../../constants'
22
22
import { benchmarkConfigDefaults , configDefaults } from '../../defaults'
23
+ import { wildcardPatternToRegExp } from '../../utils/base'
23
24
import { isCI , stdProvider } from '../../utils/env'
24
25
import { getWorkersCountByPercentage } from '../../utils/workers'
25
26
import { VitestCache } from '../cache'
@@ -251,7 +252,7 @@ export function resolveConfig(
251
252
}
252
253
}
253
254
254
- const playwrightChromiumOnly = browser . provider === 'playwright' && ( browser . name === 'chromium' || browser . instances ?. every ( i => i . browser === 'chromium' ) )
255
+ const playwrightChromiumOnly = isPlaywrightChromiumOnly ( resolved )
255
256
256
257
// Browser-mode "Playwright + Chromium" only features:
257
258
if ( browser . enabled && ! playwrightChromiumOnly ) {
@@ -891,3 +892,28 @@ export function resolveCoverageReporters(configReporters: NonNullable<BaseCovera
891
892
892
893
return resolvedReporters
893
894
}
895
+
896
+ function isPlaywrightChromiumOnly ( config : ResolvedConfig ) {
897
+ const browser = config . browser
898
+ if ( ! browser || browser . provider !== 'playwright' || ! browser . enabled ) {
899
+ return false
900
+ }
901
+ if ( browser . name ) {
902
+ return browser . name === 'chromium'
903
+ }
904
+ if ( ! browser . instances ) {
905
+ return false
906
+ }
907
+ const filteredProjects = toArray ( config . project ) . map ( p => wildcardPatternToRegExp ( p ) )
908
+ for ( const instance of browser . instances ) {
909
+ const name = instance . name || ( config . name ? `${ config . name } (${ instance . browser } )` : instance . browser )
910
+ // browser config is filtered out
911
+ if ( filteredProjects . length && ! filteredProjects . every ( p => p . test ( name ) ) ) {
912
+ continue
913
+ }
914
+ if ( instance . browser !== 'chromium' ) {
915
+ return false
916
+ }
917
+ }
918
+ return true
919
+ }
0 commit comments