Skip to content

Commit a39287d

Browse files
AmeterezuDavertMik
andauthored
Create set test host hook (#15)
* Create setTestHost * Rename setTestHost to setTestHost.js * Update index.js * Update README.md * Update index_test.js Co-authored-by: Michael Bodnarchuk <[email protected]>
1 parent fb4fdea commit a39287d

File tree

4 files changed

+58
-2
lines changed

4 files changed

+58
-2
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,16 @@ exports.config = {
125125
}
126126
```
127127

128+
### setTestHost
129+
130+
Changes url in config for Playwright, Puppeteer, WebDriver, Protractor & TestCafe:
131+
132+
```js
133+
const { setTestHost } = require('@codeceptjs/configure');
134+
135+
setTestHost(process.env.TEST_HOST);
136+
```
137+
128138
## Contributing
129139

130140
Please send your config hooks!

hooks/setTestHost.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const { config } = require('../codeceptjs');
2+
3+
module.exports = function (url) {
4+
const supportedHelpers = [
5+
'Playwright',
6+
'WebDriver',
7+
'Puppeteer',
8+
'Appium',
9+
'TestCafe',
10+
'Protractor',
11+
'Nightmare',
12+
];
13+
14+
config.addHook(cfg => {
15+
if (!url) {
16+
return;
17+
}
18+
19+
if (!cfg.helpers) {
20+
return;
21+
}
22+
23+
for (const helperName of supportedHelpers) {
24+
if (Object.keys(cfg.helpers).includes(helperName)) {
25+
cfg.helpers[helperName].url = url;
26+
}
27+
}
28+
});
29+
};

index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ module.exports = {
44
setSharedCookies: require('./hooks/setSharedCookies'),
55
setWindowSize: require('./hooks/setWindowSize'),
66
setBrowser: require('./hooks/setBrowser'),
7+
setTestHost: require('./hooks/setTestHost'),
78
}

test/index_test.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const {
66
setSharedCookies,
77
setWindowSize,
88
setBrowser,
9+
setTestHost,
910
} = require('../index');
1011

1112
describe('Hooks tests', () => {
@@ -290,6 +291,21 @@ describe('Hooks tests', () => {
290291
}
291292
throw new Error('no exception thrown');
292293
});
293-
});
294-
294+
});
295+
296+
describe('#setTestHost', () => {
297+
['Protractor', 'TestCafe','WebDriver','Playwright','Puppeteer'].forEach(helper => {
298+
it('should set url for ' + helper, () => {
299+
Config.reset();
300+
const config = {
301+
helpers: {},
302+
}
303+
config.helpers[helper] = {};
304+
setTestHost('test.com');
305+
Config.create(config);
306+
expect(Config.get()).to.have.nested.property(`helpers.${helper}.url`);
307+
expect(Config.get().helpers[helper].url).to.eql('test.com');
308+
});
309+
});
310+
});
295311
});

0 commit comments

Comments
 (0)