From 90aa28ffb6bc07876e28c965a70a9a5b3f58c65b Mon Sep 17 00:00:00 2001 From: Mehmet Bektas Date: Wed, 23 Jun 2021 21:04:18 -0700 Subject: [PATCH 1/2] fix remote connection to chromium browser --- packages/galata/jest-env.js | 12 +++++++++--- packages/galata/jest-setup.js | 21 ++++++++++++++++----- packages/galata/jest-teardown.js | 4 +--- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/packages/galata/jest-env.js b/packages/galata/jest-env.js index b8d8b15..170d683 100644 --- a/packages/galata/jest-env.js +++ b/packages/galata/jest-env.js @@ -219,9 +219,15 @@ class TestEnvironment extends NodeEnvironment { let browser; try { - browser = await pwBrowser.connect({ - wsEndpoint: sessionInfo.wsEndpoint - }); + if (browserType === 'chromium' && config.browserUrl !== '') { + browser = await pwBrowser.connectOverCDP({ + endpointURL: sessionInfo.wsEndpoint + }); + } else { + browser = await pwBrowser.connect({ + wsEndpoint: sessionInfo.wsEndpoint + }); + } } catch (reason) { const message = `Failed to connect to browser using wsEndpoint ${sessionInfo.wsEndpoint}`; log('error', message); diff --git a/packages/galata/jest-setup.js b/packages/galata/jest-setup.js index db883ee..1096d1f 100644 --- a/packages/galata/jest-setup.js +++ b/packages/galata/jest-setup.js @@ -65,15 +65,24 @@ module.exports = async function () { const headless = config.headless; const slowMo = config.slowMo; let browser; + let wsEndpoint; if (config.browserUrl !== '') { try { const apiUrl = `${config.browserUrl}/json/version`; const response = await axios.get(apiUrl); - browser = await pwBrowser.connect({ - wsEndpoint: response.data.webSocketDebuggerUrl, - slowMo: slowMo - }); + wsEndpoint = response.data.webSocketDebuggerUrl; + if (browserType === 'chromium') { + browser = await pwBrowser.connectOverCDP({ + endpointURL: wsEndpoint, + slowMo: slowMo + }); + } else { + browser = await pwBrowser.connect({ + wsEndpoint: wsEndpoint, + slowMo: slowMo + }); + } } catch (reason) { await logAndExit( 'error', @@ -104,6 +113,7 @@ module.exports = async function () { }, slowMo: slowMo }); + wsEndpoint = browser.wsEndpoint(); } catch (reason) { await logAndExit( 'error', @@ -119,6 +129,7 @@ module.exports = async function () { const sessionInfo = { testId: config.testId, browserType: config.browserType, + browserUrl: config.browserUrl, testOutputDir: config.testOutputDir, referenceDir: config.referenceDir, jlabBaseUrl: config.jlabBaseUrl, @@ -126,7 +137,7 @@ module.exports = async function () { skipVisualRegression: config.skipVisualRegression === true, skipHtmlRegression: config.skipHtmlRegression === true, discardMatchedCaptures: config.discardMatchedCaptures !== false, - wsEndpoint: browser.wsEndpoint(), + wsEndpoint: wsEndpoint, buildJlabVersion: getBuildJlabVersion(), imageMatchThreshold: config.imageMatchThreshold }; diff --git a/packages/galata/jest-teardown.js b/packages/galata/jest-teardown.js index 9ab2dea..9621768 100644 --- a/packages/galata/jest-teardown.js +++ b/packages/galata/jest-teardown.js @@ -6,9 +6,7 @@ const { getConfig, saveLogsToFile } = require('./util'); const config = getConfig(); module.exports = async function () { - if (config.browserUrl === '') { - await global.__BROWSER_GLOBAL__.close(); - } + await global.__BROWSER_GLOBAL__.close(); saveLogsToFile('jest-logs.json'); }; From 610f1ba72614076a72a854c2893806f33c42041b Mon Sep 17 00:00:00 2001 From: Mehmet Bektas Date: Wed, 23 Jun 2021 21:19:04 -0700 Subject: [PATCH 2/2] fix lint error --- packages/galata/jest-teardown.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/galata/jest-teardown.js b/packages/galata/jest-teardown.js index 9621768..e85ea8a 100644 --- a/packages/galata/jest-teardown.js +++ b/packages/galata/jest-teardown.js @@ -1,9 +1,7 @@ // Copyright (c) Bloomberg Finance LP. // Distributed under the terms of the Modified BSD License. -const { getConfig, saveLogsToFile } = require('./util'); - -const config = getConfig(); +const { saveLogsToFile } = require('./util'); module.exports = async function () { await global.__BROWSER_GLOBAL__.close();