@@ -29,7 +29,7 @@ exports.BS_LOCAL_ARGS = {
2929} ;
3030
3131// Patching the capabilities dynamically according to the project name.
32- const patchCaps = ( name ) => {
32+ const patchCaps = ( name , title ) => {
3333 let combination = name . split ( / @ b r o w s e r s t a c k / ) [ 0 ] ;
3434 let [ browerCaps , osCaps ] = combination . split ( / : / ) ;
3535 let [ browser , browser_version ] = browerCaps . split ( / @ / ) ;
@@ -40,32 +40,23 @@ const patchCaps = (name) => {
4040 caps . browser_version = browser_version ? browser_version : 'latest' ;
4141 caps . os = os ? os : 'osx' ;
4242 caps . os_version = os_version ? os_version : 'catalina' ;
43- caps . name = name ;
43+ caps . name = title ;
4444} ;
4545
4646const isHash = ( entity ) => Boolean ( entity && typeof ( entity ) === "object" && ! Array . isArray ( entity ) ) ;
4747const nestedKeyValue = ( hash , keys ) => keys . reduce ( ( hash , key ) => ( isHash ( hash ) ? hash [ key ] : undefined ) , hash ) ;
4848
4949exports . test = base . test . extend ( {
50- browser : async ( { playwright , browser } , use , workerInfo ) => {
50+ page : async ( { page , playwright } , use , testInfo ) => {
5151 // Use BrowserStack Launched Browser according to capabilities for cross-browser testing.
52- if ( workerInfo . project . name . match ( / b r o w s e r s t a c k / ) ) {
53- patchCaps ( workerInfo . project . name ) ;
52+ if ( testInfo . project . name . match ( / b r o w s e r s t a c k / ) ) {
53+ patchCaps ( testInfo . project . name , ` ${ testInfo . file } - ${ testInfo . title } ` ) ;
5454 const vBrowser = await playwright . chromium . connect ( {
5555 wsEndpoint :
5656 `wss://cdp.browserstack.com/playwright?caps=` +
5757 `${ encodeURIComponent ( JSON . stringify ( caps ) ) } ` ,
5858 } ) ;
59- await use ( vBrowser ) ;
60- } else {
61- // Use Local Browser for testing.
62- await use ( browser ) ;
63- }
64- } ,
65- page : async ( { page, browser } , use , testInfo ) => {
66- // Overriding page function to mark the status on BrowserStack.
67- if ( testInfo . project . name . match ( / b r o w s e r s t a c k / ) ) {
68- const vPage = await browser . newPage ( ) ;
59+ const vPage = await vBrowser . newPage ( ) ;
6960 await use ( vPage ) ;
7061 const testResult = {
7162 action : 'setSessionStatus' ,
@@ -77,6 +68,7 @@ exports.test = base.test.extend({
7768 await vPage . evaluate ( ( ) => { } ,
7869 `browserstack_executor: ${ JSON . stringify ( testResult ) } ` ) ;
7970 await vPage . close ( ) ;
71+ await vBrowser . close ( ) ;
8072 } else {
8173 use ( page ) ;
8274 }
0 commit comments