From a48ac702a65db12de6db3c32dce53cb91a115e7c Mon Sep 17 00:00:00 2001 From: Andrey Belym Date: Thu, 7 Mar 2019 02:47:05 +0300 Subject: [PATCH 1/2] Fix error messages when can't find firefox & chrome --- package.json | 1 + .../provider/built-in/dedicated/base.js | 37 ++++++++++++ .../chrome/build-chrome-args.js | 0 .../built-in/{ => dedicated}/chrome/cdp.js | 2 +- .../built-in/{ => dedicated}/chrome/config.js | 2 +- .../chrome/create-temp-profile.js | 4 +- .../built-in/{ => dedicated}/chrome/index.js | 32 ++++------- .../{ => dedicated}/chrome/local-chrome.js | 4 +- .../{ => dedicated}/chrome/runtime-info.js | 0 .../{ => dedicated}/firefox/config.js | 2 +- .../firefox/create-temp-profile.js | 4 +- .../built-in/{ => dedicated}/firefox/index.js | 26 +++------ .../{ => dedicated}/firefox/local-firefox.js | 4 +- .../firefox/marionette-client/commands.js | 0 .../firefox/marionette-client/index.js | 6 +- .../{ => dedicated}/firefox/runtime-info.js | 0 src/browser/provider/built-in/index.js | 4 +- .../browser-provider/custom-profile/test.js | 4 +- .../browser-provider/job-reporting/test.js | 15 +++-- test/server/browser-provider-test.js | 57 +++++++++++++++++++ test/server/chrome-provider-config-test.js | 2 +- test/server/firefox-provider-config-test.js | 2 +- test/server/util-test.js | 2 +- 23 files changed, 143 insertions(+), 67 deletions(-) create mode 100644 src/browser/provider/built-in/dedicated/base.js rename src/browser/provider/built-in/{ => dedicated}/chrome/build-chrome-args.js (100%) rename src/browser/provider/built-in/{ => dedicated}/chrome/cdp.js (97%) rename src/browser/provider/built-in/{ => dedicated}/chrome/config.js (98%) rename src/browser/provider/built-in/{ => dedicated}/chrome/create-temp-profile.js (88%) rename src/browser/provider/built-in/{ => dedicated}/chrome/index.js (81%) rename src/browser/provider/built-in/{ => dedicated}/chrome/local-chrome.js (86%) rename src/browser/provider/built-in/{ => dedicated}/chrome/runtime-info.js (100%) rename src/browser/provider/built-in/{ => dedicated}/firefox/config.js (95%) rename src/browser/provider/built-in/{ => dedicated}/firefox/create-temp-profile.js (95%) rename src/browser/provider/built-in/{ => dedicated}/firefox/index.js (81%) rename src/browser/provider/built-in/{ => dedicated}/firefox/local-firefox.js (92%) rename src/browser/provider/built-in/{ => dedicated}/firefox/marionette-client/commands.js (100%) rename src/browser/provider/built-in/{ => dedicated}/firefox/marionette-client/index.js (96%) rename src/browser/provider/built-in/{ => dedicated}/firefox/runtime-info.js (100%) diff --git a/package.json b/package.json index b14b8a2f754..47806ff49c3 100644 --- a/package.json +++ b/package.json @@ -177,6 +177,7 @@ "npm-auditor": "^1.1.1", "openssl-self-signed-certificate": "^1.1.6", "opn": "^4.0.2", + "proxyquire": "^2.1.0", "publish-please": "^5.4.3", "recursive-copy": "^2.0.5", "request": "^2.58.0", diff --git a/src/browser/provider/built-in/dedicated/base.js b/src/browser/provider/built-in/dedicated/base.js new file mode 100644 index 00000000000..3663381bfb1 --- /dev/null +++ b/src/browser/provider/built-in/dedicated/base.js @@ -0,0 +1,37 @@ +import { getBrowserInfo } from 'testcafe-browser-tools'; +import getMaximizedHeadlessWindowSize from '../../utils/get-maximized-headless-window-size'; + +export default { + openedBrowsers: {}, + + isMultiBrowser: false, + + _getConfig () { + throw new Error('Not implemented'); + }, + + _getBrowserName () { + return this.providerName.replace(':', ''); + }, + + async isValidBrowserName (browserName) { + const config = await this._getConfig(browserName); + const browserInfo = await getBrowserInfo(config.path || this._getBrowserName()); + + return !!browserInfo; + }, + + async isLocalBrowser () { + return true; + }, + + isHeadlessBrowser (browserId) { + return this.openedBrowsers[browserId].config.headless; + }, + + async maximizeWindow (browserId) { + const maximumSize = getMaximizedHeadlessWindowSize(); + + await this.resizeWindow(browserId, maximumSize.width, maximumSize.height, maximumSize.width, maximumSize.height); + } +}; diff --git a/src/browser/provider/built-in/chrome/build-chrome-args.js b/src/browser/provider/built-in/dedicated/chrome/build-chrome-args.js similarity index 100% rename from src/browser/provider/built-in/chrome/build-chrome-args.js rename to src/browser/provider/built-in/dedicated/chrome/build-chrome-args.js diff --git a/src/browser/provider/built-in/chrome/cdp.js b/src/browser/provider/built-in/dedicated/chrome/cdp.js similarity index 97% rename from src/browser/provider/built-in/chrome/cdp.js rename to src/browser/provider/built-in/dedicated/chrome/cdp.js index f2a987003bd..3d79175dc01 100644 --- a/src/browser/provider/built-in/chrome/cdp.js +++ b/src/browser/provider/built-in/dedicated/chrome/cdp.js @@ -1,5 +1,5 @@ import remoteChrome from 'chrome-remote-interface'; -import { GET_WINDOW_DIMENSIONS_INFO_SCRIPT } from '../../utils/client-functions'; +import { GET_WINDOW_DIMENSIONS_INFO_SCRIPT } from '../../../utils/client-functions'; async function getActiveTab (cdpPort, browserId) { diff --git a/src/browser/provider/built-in/chrome/config.js b/src/browser/provider/built-in/dedicated/chrome/config.js similarity index 98% rename from src/browser/provider/built-in/chrome/config.js rename to src/browser/provider/built-in/dedicated/chrome/config.js index 25349e3d176..5e60a703ebc 100644 --- a/src/browser/provider/built-in/chrome/config.js +++ b/src/browser/provider/built-in/dedicated/chrome/config.js @@ -2,7 +2,7 @@ import emulatedDevices from 'chrome-emulated-devices-list'; import { pickBy as filterProperties } from 'lodash'; import { hasMatch, findMatch, isMatchTrue, getModes, splitEscaped, getPathFromParsedModes, parseConfig -} from '../../utils/argument-parsing'; +} from '../../../utils/argument-parsing'; const HEADLESS_DEFAULT_WIDTH = 1280; diff --git a/src/browser/provider/built-in/chrome/create-temp-profile.js b/src/browser/provider/built-in/dedicated/chrome/create-temp-profile.js similarity index 88% rename from src/browser/provider/built-in/chrome/create-temp-profile.js rename to src/browser/provider/built-in/dedicated/chrome/create-temp-profile.js index 1f66a3f5cc0..4fd53d19cc3 100644 --- a/src/browser/provider/built-in/chrome/create-temp-profile.js +++ b/src/browser/provider/built-in/dedicated/chrome/create-temp-profile.js @@ -1,7 +1,7 @@ import path from 'path'; import makeDir from 'make-dir'; -import TempDirectory from '../../../../utils/temp-directory'; -import { writeFile } from '../../../../utils/promisified-functions'; +import TempDirectory from '../../../../../utils/temp-directory'; +import { writeFile } from '../../../../../utils/promisified-functions'; export default async function (proxyHostName) { diff --git a/src/browser/provider/built-in/chrome/index.js b/src/browser/provider/built-in/dedicated/chrome/index.js similarity index 81% rename from src/browser/provider/built-in/chrome/index.js rename to src/browser/provider/built-in/dedicated/chrome/index.js index 2f7289d1fad..98d3f437645 100644 --- a/src/browser/provider/built-in/chrome/index.js +++ b/src/browser/provider/built-in/dedicated/chrome/index.js @@ -1,26 +1,28 @@ import OS from 'os-family'; import { parse as parseUrl } from 'url'; +import dedicatedProviderBase from '../base'; import getRuntimeInfo from './runtime-info'; +import getConfig from './config'; import { start as startLocalChrome, stop as stopLocalChrome } from './local-chrome'; import * as cdp from './cdp'; -import getMaximizedHeadlessWindowSize from '../../utils/get-maximized-headless-window-size'; -import { GET_WINDOW_DIMENSIONS_INFO_SCRIPT } from '../../utils/client-functions'; -import { cropScreenshot } from '../../../../screenshots/crop'; -import { writePng } from '../../../../screenshots/utils'; +import { GET_WINDOW_DIMENSIONS_INFO_SCRIPT } from '../../../utils/client-functions'; +import { cropScreenshot } from '../../../../../screenshots/crop'; +import { writePng } from '../../../../../screenshots/utils'; const MIN_AVAILABLE_DIMENSION = 50; export default { - openedBrowsers: {}, + ...dedicatedProviderBase, - isMultiBrowser: false, + _getConfig (name) { + return getConfig(name); + }, async openBrowser (browserId, pageUrl, configString) { const runtimeInfo = await getRuntimeInfo(parseUrl(pageUrl).hostname, configString); - const browserName = this.providerName.replace(':', ''); + runtimeInfo.browserName = this._getBrowserName(); runtimeInfo.browserId = browserId; - runtimeInfo.browserName = browserName; runtimeInfo.providerMethods = { resizeLocalBrowserWindow: (...args) => this.resizeLocalBrowserWindow(...args) @@ -56,14 +58,6 @@ export default { delete this.openedBrowsers[browserId]; }, - async isLocalBrowser () { - return true; - }, - - isHeadlessBrowser (browserId) { - return this.openedBrowsers[browserId].config.headless; - }, - async takeScreenshot (browserId, path) { const runtimeInfo = this.openedBrowsers[browserId]; const viewport = await cdp.getPageViewport(runtimeInfo); @@ -95,12 +89,6 @@ export default { await cdp.resizeWindow({ width, height }, runtimeInfo); }, - async maximizeWindow (browserId) { - const maximumSize = getMaximizedHeadlessWindowSize(); - - await this.resizeWindow(browserId, maximumSize.width, maximumSize.height, maximumSize.width, maximumSize.height); - }, - async getVideoFrameData (browserId) { return await cdp.getScreenshotData(this.openedBrowsers[browserId]); }, diff --git a/src/browser/provider/built-in/chrome/local-chrome.js b/src/browser/provider/built-in/dedicated/chrome/local-chrome.js similarity index 86% rename from src/browser/provider/built-in/chrome/local-chrome.js rename to src/browser/provider/built-in/dedicated/chrome/local-chrome.js index b4d47ff52de..167c395dc56 100644 --- a/src/browser/provider/built-in/chrome/local-chrome.js +++ b/src/browser/provider/built-in/dedicated/chrome/local-chrome.js @@ -1,6 +1,6 @@ import browserTools from 'testcafe-browser-tools'; -import { killBrowserProcess } from '../../../../utils/process'; -import BrowserStarter from '../../utils/browser-starter'; +import { killBrowserProcess } from '../../../../../utils/process'; +import BrowserStarter from '../../../utils/browser-starter'; import { buildChromeArgs } from './build-chrome-args'; const browserStarter = new BrowserStarter(); diff --git a/src/browser/provider/built-in/chrome/runtime-info.js b/src/browser/provider/built-in/dedicated/chrome/runtime-info.js similarity index 100% rename from src/browser/provider/built-in/chrome/runtime-info.js rename to src/browser/provider/built-in/dedicated/chrome/runtime-info.js diff --git a/src/browser/provider/built-in/firefox/config.js b/src/browser/provider/built-in/dedicated/firefox/config.js similarity index 95% rename from src/browser/provider/built-in/firefox/config.js rename to src/browser/provider/built-in/dedicated/firefox/config.js index 0c443fdf664..c663a154c55 100644 --- a/src/browser/provider/built-in/firefox/config.js +++ b/src/browser/provider/built-in/dedicated/firefox/config.js @@ -1,4 +1,4 @@ -import { findMatch, isMatchTrue, splitEscaped, parseConfig, getModes, getPathFromParsedModes } from '../../utils/argument-parsing'; +import { findMatch, isMatchTrue, splitEscaped, parseConfig, getModes, getPathFromParsedModes } from '../../../utils/argument-parsing'; const AVAILABLE_MODES = ['userProfile', 'headless']; diff --git a/src/browser/provider/built-in/firefox/create-temp-profile.js b/src/browser/provider/built-in/dedicated/firefox/create-temp-profile.js similarity index 95% rename from src/browser/provider/built-in/firefox/create-temp-profile.js rename to src/browser/provider/built-in/dedicated/firefox/create-temp-profile.js index 1647f71127c..2d5d30ec3b5 100644 --- a/src/browser/provider/built-in/firefox/create-temp-profile.js +++ b/src/browser/provider/built-in/dedicated/firefox/create-temp-profile.js @@ -1,6 +1,6 @@ import path from 'path'; -import TempDirectory from '../../../../utils/temp-directory'; -import { writeFile } from '../../../../utils/promisified-functions'; +import TempDirectory from '../../../../../utils/temp-directory'; +import { writeFile } from '../../../../../utils/promisified-functions'; async function generatePreferences (profileDir, { marionettePort, config }) { diff --git a/src/browser/provider/built-in/firefox/index.js b/src/browser/provider/built-in/dedicated/firefox/index.js similarity index 81% rename from src/browser/provider/built-in/firefox/index.js rename to src/browser/provider/built-in/dedicated/firefox/index.js index e7be2f39239..5f992e797c2 100644 --- a/src/browser/provider/built-in/firefox/index.js +++ b/src/browser/provider/built-in/dedicated/firefox/index.js @@ -1,14 +1,17 @@ import OS from 'os-family'; +import dedicatedProviderBase from '../base'; import getRuntimeInfo from './runtime-info'; +import getConfig from './config'; import { start as startLocalFirefox, stop as stopLocalFirefox } from './local-firefox'; import MarionetteClient from './marionette-client'; -import getMaximizedHeadlessWindowSize from '../../utils/get-maximized-headless-window-size'; export default { - openedBrowsers: {}, + ...dedicatedProviderBase, - isMultiBrowser: false, + _getConfig (name) { + return getConfig(name); + }, async _createMarionetteClient (runtimeInfo) { try { @@ -25,10 +28,9 @@ export default { async openBrowser (browserId, pageUrl, configString) { const runtimeInfo = await getRuntimeInfo(configString); - const browserName = this.providerName.replace(':', ''); + runtimeInfo.browserName = this._getBrowserName(); runtimeInfo.browserId = browserId; - runtimeInfo.browserName = browserName; await startLocalFirefox(pageUrl, runtimeInfo); @@ -58,14 +60,6 @@ export default { delete this.openedBrowsers[browserId]; }, - async isLocalBrowser () { - return true; - }, - - isHeadlessBrowser (browserId) { - return this.openedBrowsers[browserId].config.headless; - }, - async takeScreenshot (browserId, path) { const { marionetteClient } = this.openedBrowsers[browserId]; @@ -78,12 +72,6 @@ export default { await marionetteClient.setWindowSize(width, height); }, - async maximizeWindow (browserId) { - const maximumSize = getMaximizedHeadlessWindowSize(); - - await this.resizeWindow(browserId, maximumSize.width, maximumSize.height); - }, - async getVideoFrameData (browserId) { const { marionetteClient } = this.openedBrowsers[browserId]; diff --git a/src/browser/provider/built-in/firefox/local-firefox.js b/src/browser/provider/built-in/dedicated/firefox/local-firefox.js similarity index 92% rename from src/browser/provider/built-in/firefox/local-firefox.js rename to src/browser/provider/built-in/dedicated/firefox/local-firefox.js index 2493e3d3947..9d8db1cbd13 100644 --- a/src/browser/provider/built-in/firefox/local-firefox.js +++ b/src/browser/provider/built-in/dedicated/firefox/local-firefox.js @@ -1,7 +1,7 @@ import OS from 'os-family'; import browserTools from 'testcafe-browser-tools'; -import { killBrowserProcess } from '../../../../utils/process'; -import BrowserStarter from '../../utils/browser-starter'; +import { killBrowserProcess } from '../../../../../utils/process'; +import BrowserStarter from '../../../utils/browser-starter'; const browserStarter = new BrowserStarter(); diff --git a/src/browser/provider/built-in/firefox/marionette-client/commands.js b/src/browser/provider/built-in/dedicated/firefox/marionette-client/commands.js similarity index 100% rename from src/browser/provider/built-in/firefox/marionette-client/commands.js rename to src/browser/provider/built-in/dedicated/firefox/marionette-client/commands.js diff --git a/src/browser/provider/built-in/firefox/marionette-client/index.js b/src/browser/provider/built-in/dedicated/firefox/marionette-client/index.js similarity index 96% rename from src/browser/provider/built-in/firefox/marionette-client/index.js rename to src/browser/provider/built-in/dedicated/firefox/marionette-client/index.js index 2ad25a415fa..4e5fb796d73 100644 --- a/src/browser/provider/built-in/firefox/marionette-client/index.js +++ b/src/browser/provider/built-in/dedicated/firefox/marionette-client/index.js @@ -2,9 +2,9 @@ import Promise from 'pinkie'; import { Socket } from 'net'; import promisifyEvent from 'promisify-event'; import EventEmitter from 'events'; -import { writeFile } from '../../../../../utils/promisified-functions'; -import delay from '../../../../../utils/delay'; -import { GET_WINDOW_DIMENSIONS_INFO_SCRIPT } from '../../../utils/client-functions'; +import { writeFile } from '../../../../../../utils/promisified-functions'; +import delay from '../../../../../../utils/delay'; +import { GET_WINDOW_DIMENSIONS_INFO_SCRIPT } from '../../../../utils/client-functions'; import COMMANDS from './commands'; diff --git a/src/browser/provider/built-in/firefox/runtime-info.js b/src/browser/provider/built-in/dedicated/firefox/runtime-info.js similarity index 100% rename from src/browser/provider/built-in/firefox/runtime-info.js rename to src/browser/provider/built-in/dedicated/firefox/runtime-info.js diff --git a/src/browser/provider/built-in/index.js b/src/browser/provider/built-in/index.js index 1c64afee6a5..2cdd31a1556 100644 --- a/src/browser/provider/built-in/index.js +++ b/src/browser/provider/built-in/index.js @@ -1,8 +1,8 @@ import pathBrowserProvider from './path'; import locallyInstalledBrowserProvider from './locally-installed'; import remoteBrowserProvider from './remote'; -import firefoxProvider from './firefox'; -import chromeProvider from './chrome'; +import firefoxProvider from './dedicated/firefox'; +import chromeProvider from './dedicated/chrome'; export default Object.assign( { diff --git a/test/functional/fixtures/browser-provider/custom-profile/test.js b/test/functional/fixtures/browser-provider/custom-profile/test.js index 572caf99194..6d338fd666d 100644 --- a/test/functional/fixtures/browser-provider/custom-profile/test.js +++ b/test/functional/fixtures/browser-provider/custom-profile/test.js @@ -3,8 +3,8 @@ const { expect } = require('chai'); const Promise = require('pinkie'); const config = require('../../../config'); const { createNullStream } = require('../../../utils/stream'); -const createChromeProfile = require('../../../../../lib/browser/provider/built-in/chrome/create-temp-profile'); -const createFirefoxProfile = require('../../../../../lib/browser/provider/built-in/firefox/create-temp-profile'); +const createChromeProfile = require('../../../../../lib/browser/provider/built-in/dedicated/chrome/create-temp-profile'); +const createFirefoxProfile = require('../../../../../lib/browser/provider/built-in/dedicated/firefox/create-temp-profile'); if (config.useLocalBrowsers && !config.isTravisEnvironment) { diff --git a/test/functional/fixtures/browser-provider/job-reporting/test.js b/test/functional/fixtures/browser-provider/job-reporting/test.js index 8731ac0dcf9..d77c76090a6 100644 --- a/test/functional/fixtures/browser-provider/job-reporting/test.js +++ b/test/functional/fixtures/browser-provider/job-reporting/test.js @@ -1,7 +1,8 @@ const path = require('path'); +const Promise = require('pinkie'); const expect = require('chai').expect; const config = require('../../../config'); -const chromeBrowserProvider = require('../../../../../lib/browser/provider/built-in/chrome'); +const chromeBrowserProvider = require('../../../../../lib/browser/provider/built-in/dedicated/chrome'); const browserProviderPool = require('../../../../../lib/browser/provider/pool'); const BrowserConnection = require('../../../../../lib/browser/connection'); @@ -16,7 +17,7 @@ if (config.useLocalBrowsers) { state: {}, idNameMap: {}, - openBrowser: function (browserId, pageUrl, name) { + openBrowser (browserId, pageUrl, name) { const self = this; this.idNameMap[browserId] = name; @@ -31,11 +32,15 @@ if (config.useLocalBrowsers) { return chromeBrowserProvider.openBrowser.call(this, browserId, pageUrl, 'headless --no-sandbox'); }, - closeBrowser: function (browserId) { + closeBrowser (browserId) { return chromeBrowserProvider.closeBrowser.call(this, browserId); }, - reportJobResult: function (browserId, result, data) { + isValidBrowserName () { + return Promise.resolve(true); + }, + + reportJobResult (browserId, result, data) { const name = this.idNameMap[browserId]; this.state[name].result = result; @@ -44,7 +49,7 @@ if (config.useLocalBrowsers) { return Promise.resolve(); }, - simulateError: function (browserId) { + simulateError (browserId) { const bc = BrowserConnection.getById(browserId); bc.emit('error', new Error('Connection error')); diff --git a/test/server/browser-provider-test.js b/test/server/browser-provider-test.js index 11093ff0c17..c8c55d0394c 100644 --- a/test/server/browser-provider-test.js +++ b/test/server/browser-provider-test.js @@ -1,5 +1,6 @@ const expect = require('chai').expect; const Promise = require('pinkie'); +const proxyquire = require('proxyquire'); const testcafeBrowserTools = require('testcafe-browser-tools'); const browserProviderPool = require('../../lib/browser/provider/pool'); const parseProviderName = require('../../lib/browser/provider/parse-provider-name'); @@ -197,5 +198,61 @@ describe('Browser provider', function () { }); }); }); + + describe('Dedicated providers base', () => { + describe('isValidBrowserName', function () { + it('Should return false if a browser is not found', () => { + const dedicatedBrowserProviderBase = proxyquire('../../lib/browser/provider/built-in/dedicated/base', { + 'testcafe-browser-tools': { + getBrowserInfo () { + return null; + } + } + }); + + const testProvider = { + ...dedicatedBrowserProviderBase, + + providerName: 'browser', + + _getConfig () { + return {}; + } + }; + + return testProvider + .isValidBrowserName('browser') + .then(result => { + expect(result).to.be.false; + }); + }); + + it('Should return true if a browser is found', () => { + const dedicatedBrowserProviderBase = proxyquire('../../lib/browser/provider/built-in/dedicated/base', { + 'testcafe-browser-tools': { + getBrowserInfo () { + return { alias: 'browser' }; + } + } + }); + + const testProvider = { + ...dedicatedBrowserProviderBase, + + providerName: 'browser', + + _getConfig () { + return {}; + } + }; + + return testProvider + .isValidBrowserName('browser') + .then(result => { + expect(result).to.be.true; + }); + }); + }); + }); }); diff --git a/test/server/chrome-provider-config-test.js b/test/server/chrome-provider-config-test.js index 9335f37c8c7..b711c93fb2b 100644 --- a/test/server/chrome-provider-config-test.js +++ b/test/server/chrome-provider-config-test.js @@ -1,6 +1,6 @@ const expect = require('chai').expect; const OS = require('os-family'); -const getChromeConfig = require('../../lib/browser/provider/built-in/chrome/config.js'); +const getChromeConfig = require('../../lib/browser/provider/built-in/dedicated/chrome/config.js'); describe('Chrome provider config parser', function () { diff --git a/test/server/firefox-provider-config-test.js b/test/server/firefox-provider-config-test.js index 372e899ad27..7e8908ca7e7 100644 --- a/test/server/firefox-provider-config-test.js +++ b/test/server/firefox-provider-config-test.js @@ -1,6 +1,6 @@ const expect = require('chai').expect; const OS = require('os-family'); -const getFirefoxConfig = require('../../lib/browser/provider/built-in/firefox/config.js'); +const getFirefoxConfig = require('../../lib/browser/provider/built-in/dedicated/firefox/config.js'); describe('Firefox provider config parser', function () { diff --git a/test/server/util-test.js b/test/server/util-test.js index 78ca1ae123e..4edac4441fd 100644 --- a/test/server/util-test.js +++ b/test/server/util-test.js @@ -24,7 +24,7 @@ const prepareReporters = require('../../lib/utils/prepare-reporters'); const { buildChromeArgs, IN_DOCKER_FLAGS -} = require('../../lib/browser/provider/built-in/chrome/build-chrome-args'); +} = require('../../lib/browser/provider/built-in/dedicated/chrome/build-chrome-args'); describe('Utils', () => { it('Correct File Path', () => { From 4ad552f1b8a042c7c4337b9e949b307e3488fb60 Mon Sep 17 00:00:00 2001 From: Andrey Belym Date: Tue, 19 Mar 2019 10:42:48 +0300 Subject: [PATCH 2/2] Fix tests on Node 6 --- test/server/browser-provider-test.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/test/server/browser-provider-test.js b/test/server/browser-provider-test.js index c8c55d0394c..43ea7d5aa8a 100644 --- a/test/server/browser-provider-test.js +++ b/test/server/browser-provider-test.js @@ -210,15 +210,13 @@ describe('Browser provider', function () { } }); - const testProvider = { - ...dedicatedBrowserProviderBase, - + const testProvider = Object.assign({}, dedicatedBrowserProviderBase, { providerName: 'browser', _getConfig () { return {}; } - }; + }); return testProvider .isValidBrowserName('browser') @@ -236,15 +234,13 @@ describe('Browser provider', function () { } }); - const testProvider = { - ...dedicatedBrowserProviderBase, - + const testProvider = Object.assign({}, dedicatedBrowserProviderBase, { providerName: 'browser', _getConfig () { return {}; } - }; + }); return testProvider .isValidBrowserName('browser')