Skip to content

Commit

Permalink
Create a factory method to create service.
Browse files Browse the repository at this point in the history
  • Loading branch information
garg3133 committed Jan 4, 2023
1 parent 08d7dab commit d1b387d
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 13 deletions.
9 changes: 2 additions & 7 deletions lib/runner/cli/cli.js
Expand Up @@ -3,6 +3,7 @@ const lodashClone = require('lodash.clone');
const ArgvSetup = require('./argv-setup.js');
const Settings = require('../../settings/settings.js');
const Globals = require('../../testsuite/globals.js');
const Factory = require('../../transport/factory.js');
const Concurrency = require('../concurrency');
const Utils = require('../../utils');
const Runner = require('../runner.js');
Expand Down Expand Up @@ -474,13 +475,7 @@ class CliRunner {
let promise = Promise.resolve();

if (this.test_settings.selenium && this.test_settings.selenium.start_process) {
const Server = this.test_settings.selenium.use_appium
? require('../../transport/selenium-webdriver/appium.js')
: require('../../transport/selenium-webdriver/selenium.js');

this.seleniumService = Server.startServer(this.test_settings);
promise = this.seleniumService.init();
this.test_settings.selenium['[_started]'] = true;
promise = Factory.createSeleniumService(this);
}

const {real_mobile, avd} = this.test_settings.desiredCapabilities;
Expand Down
13 changes: 13 additions & 0 deletions lib/transport/factory.js
Expand Up @@ -12,6 +12,19 @@ const BrowsersLowerCase = {
};

module.exports = class TransportFactory {
static createSeleniumService(cliRunner) {
const usingAppium = cliRunner.test_settings.selenium.use_appium;

const Server = usingAppium
? require('./selenium-webdriver/appium.js')
: require('./selenium-webdriver/selenium.js');

cliRunner.seleniumService = Server.createService(cliRunner.test_settings);
cliRunner.test_settings.selenium['[_started]'] = true;

return cliRunner.seleniumService.init();
}

static usingSeleniumServer(settings) {
if (!settings.selenium) {
return false;
Expand Down
2 changes: 1 addition & 1 deletion lib/transport/selenium-webdriver/appium.js
Expand Up @@ -4,7 +4,7 @@ const AppiumMixin = require('./appiumMixin');


class AppiumServer extends SeleniumServer {
static startServer(settings) {
static createService(settings) {
const Options = require('./options.js');
const opts = new Options({settings});
opts.updateWebdriverPath();
Expand Down
2 changes: 1 addition & 1 deletion lib/transport/selenium-webdriver/selenium.js
Expand Up @@ -5,7 +5,7 @@ module.exports = class SeleniumServer extends DefaultSeleniumDriver {
/**
* Used when running in parallel with start_process=true
*/
static startServer(settings) {
static createService(settings) {
const Options = require('./options.js');
const opts = new Options({settings});
opts.updateWebdriverPath();
Expand Down
8 changes: 4 additions & 4 deletions test/src/cli/testServiceCreationFromCli.js
Expand Up @@ -204,8 +204,8 @@ describe('Service creation from cli.js', function() {
});

let appiumServerStarted = false;
mockery.registerMock('../../transport/selenium-webdriver/appium.js', class AppiumServer {
static startServer() {
mockery.registerMock('./selenium-webdriver/appium.js', class AppiumServer {
static createService() {
appiumServerStarted = true;
}
});
Expand Down Expand Up @@ -240,8 +240,8 @@ describe('Service creation from cli.js', function() {
});

let seleniumServerStarted = false;
mockery.registerMock('../../transport/selenium-webdriver/selenium.js', class SeleniumServer {
static startServer() {
mockery.registerMock('./selenium-webdriver/selenium.js', class SeleniumServer {
static createService() {
seleniumServerStarted = true;

return {
Expand Down

0 comments on commit d1b387d

Please sign in to comment.