Skip to content

Commit d2918c4

Browse files
committed
#2483 - fixed an issue with merging the config settings when passed programmatically
1 parent 818f85d commit d2918c4

2 files changed

Lines changed: 36 additions & 5 deletions

File tree

lib/settings/settings.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,9 @@ class Settings {
5252
return this.settings.test_workers === true || this.settings.test_workers && this.settings.test_workers.enabled;
5353
}
5454

55-
adaptSettings() {
56-
this.inheritFromDefaultEnv();
55+
adaptSettings(settings) {
56+
lodashMerge(this.settings, settings);
57+
5758
this.setCliOptions();
5859
this.setUnitTestsMode();
5960
this.setParallelMode();
@@ -266,9 +267,8 @@ class Settings {
266267
this.testEnv = testEnv;
267268
}
268269

269-
lodashMerge(this.settings, settings);
270-
271-
this.adaptSettings();
270+
this.inheritFromDefaultEnv();
271+
this.adaptSettings(settings);
272272
this.persistGlobals(settings);
273273

274274
dotenv.config(this.settings.dotenv);

test/src/index/testSettings.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,37 @@ describe('test Settings', function () {
5757
eq(request.defaultPathPrefix, '');
5858
});
5959

60+
it('test to overwrite webdriver settings programmatically', function() {
61+
const parsedSettings = Settings.parse({
62+
webdriver: {
63+
start_process: false,
64+
server_path: './bin/geckodriver',
65+
log_path: './logs'
66+
}
67+
}, {
68+
screenshots: {},
69+
test_settings: {
70+
default: {
71+
webdriver: {
72+
start_process: true,
73+
server_path: './bin/chromedriver',
74+
log_path: './logs',
75+
request_timeout_options: {
76+
retry_attempts: 1
77+
}
78+
}
79+
}
80+
}
81+
});
82+
83+
assert.strictEqual(parsedSettings.webdriver.start_process, false);
84+
assert.strictEqual(parsedSettings.webdriver.server_path, './bin/geckodriver');
85+
assert.strictEqual(parsedSettings.webdriver.log_path, './logs');
86+
assert.deepStrictEqual(parsedSettings.webdriver.request_timeout_options, {
87+
retry_attempts: 1
88+
});
89+
});
90+
6091
it('testSetSeleniumPort', function () {
6192
const Nightwatch = common.require('index.js');
6293
const Settings = common.require('settings/settings.js');

0 commit comments

Comments
 (0)