11import type { PlaywrightWorkerOptions } from '@playwright/test'
22import type { BrowserConfiguration } from '../../../browsers.conf'
33import { getBuildInfos } from '../../../envUtils'
4+ import packageJson from '../../../../package.json'
45
56export const DEV_SERVER_BASE_URL = 'http://localhost:8080'
67
@@ -22,6 +23,7 @@ export function getEncodedCapabilities(configuration: BrowserConfiguration) {
2223
2324// see: https://www.browserstack.com/docs/automate/playwright/playwright-capabilities
2425function getCapabilities ( configuration : BrowserConfiguration ) {
26+ const playwrightVersion = resolvePlaywrightVersionFromPackageJson ( )
2527 return {
2628 os : configuration . os ,
2729 os_version : configuration . osVersion ,
@@ -33,11 +35,23 @@ function getCapabilities(configuration: BrowserConfiguration) {
3335 build : getBuildInfos ( ) ,
3436 name : configuration . sessionName ,
3537 'browserstack.local' : true ,
36- 'browserstack.playwrightVersion' : '1.latest' ,
37- 'client.playwrightVersion' : '1.latest' ,
38+ 'browserstack.playwrightVersion' : playwrightVersion ,
39+ 'client.playwrightVersion' : playwrightVersion ,
3840 'browserstack.debug' : false ,
3941 'browserstack.console' : 'info' ,
4042 'browserstack.networkLogs' : false ,
4143 'browserstack.interactiveDebugging' : false ,
4244 }
4345}
46+
47+ function resolvePlaywrightVersionFromPackageJson ( ) : string {
48+ const rootPkg = packageJson as unknown as {
49+ devDependencies ?: Record < string , string >
50+ dependencies ?: Record < string , string >
51+ }
52+ const version = rootPkg . devDependencies ?. [ '@playwright/test' ] || rootPkg . dependencies ?. [ '@playwright/test' ]
53+ if ( ! version ) {
54+ throw new Error ( 'Unable to resolve @playwright/test version from package.json' )
55+ }
56+ return version
57+ }
0 commit comments