codeceptjs 3.5.4 → 3.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2887 -0
- package/docs/build/Appium.js +40 -1
- package/docs/build/Nightmare.js +4 -0
- package/docs/build/Playwright.js +15 -8
- package/docs/build/Protractor.js +4 -0
- package/docs/build/Puppeteer.js +17 -6
- package/docs/build/TestCafe.js +2 -0
- package/docs/build/WebDriver.js +4 -0
- package/docs/changelog.md +155 -0
- package/docs/helpers/Appium.md +37 -0
- package/docs/helpers/Nightmare.md +26 -24
- package/docs/helpers/Protractor.md +4 -2
- package/docs/helpers/Puppeteer.md +28 -26
- package/docs/helpers/TestCafe.md +16 -15
- package/docs/helpers/WebDriver.md +31 -29
- package/docs/webapi/executeAsyncScript.mustache +2 -0
- package/docs/webapi/executeScript.mustache +2 -0
- package/lib/codecept.js +1 -0
- package/lib/command/init.js +40 -4
- package/lib/command/run-workers.js +4 -0
- package/lib/command/run.js +6 -0
- package/lib/helper/Appium.js +40 -1
- package/lib/helper/Playwright.js +15 -8
- package/lib/helper/Puppeteer.js +13 -6
- package/lib/pause.js +1 -0
- package/package.json +85 -85
- package/typings/promiseBasedTypes.d.ts +18 -0
- package/typings/types.d.ts +31 -11
package/lib/command/init.js
CHANGED
|
@@ -201,7 +201,13 @@ module.exports = function (initPath) {
|
|
|
201
201
|
// no extra step file for typescript (as it doesn't match TS conventions)
|
|
202
202
|
const stepFile = `./steps_file.${extension}`;
|
|
203
203
|
fs.writeFileSync(path.join(testsPath, stepFile), extension === 'ts' ? defaultActorTs : defaultActor);
|
|
204
|
-
|
|
204
|
+
|
|
205
|
+
if (isTypeScript) {
|
|
206
|
+
config.include = _actorTranslation('./steps_file', config.translation);
|
|
207
|
+
} else {
|
|
208
|
+
config.include = _actorTranslation(stepFile, config.translation);
|
|
209
|
+
}
|
|
210
|
+
|
|
205
211
|
print(`Steps file created at ${stepFile}`);
|
|
206
212
|
|
|
207
213
|
let configSource;
|
|
@@ -316,7 +322,7 @@ module.exports = function (initPath) {
|
|
|
316
322
|
};
|
|
317
323
|
|
|
318
324
|
print('Configure helpers...');
|
|
319
|
-
inquirer.prompt(helperConfigs).then((helperResult) => {
|
|
325
|
+
inquirer.prompt(helperConfigs).then(async (helperResult) => {
|
|
320
326
|
if (helperResult.Playwright_browser === 'electron') {
|
|
321
327
|
delete helperResult.Playwright_url;
|
|
322
328
|
delete helperResult.Playwright_show;
|
|
@@ -336,12 +342,12 @@ module.exports = function (initPath) {
|
|
|
336
342
|
});
|
|
337
343
|
|
|
338
344
|
print('');
|
|
339
|
-
finish();
|
|
345
|
+
await finish();
|
|
340
346
|
});
|
|
341
347
|
});
|
|
342
348
|
};
|
|
343
349
|
|
|
344
|
-
function install(dependencies
|
|
350
|
+
function install(dependencies) {
|
|
345
351
|
let command;
|
|
346
352
|
let args;
|
|
347
353
|
|
|
@@ -374,9 +380,39 @@ function install(dependencies, verbose) {
|
|
|
374
380
|
].concat(dependencies);
|
|
375
381
|
}
|
|
376
382
|
|
|
383
|
+
if (process.env._INIT_DRY_RUN_INSTALL) {
|
|
384
|
+
args.push('--dry-run');
|
|
385
|
+
}
|
|
386
|
+
|
|
377
387
|
const { status } = spawn.sync(command, args, { stdio: 'inherit' });
|
|
378
388
|
if (status !== 0) {
|
|
379
389
|
throw new Error(`${command} ${args.join(' ')} failed`);
|
|
380
390
|
}
|
|
381
391
|
return true;
|
|
382
392
|
}
|
|
393
|
+
|
|
394
|
+
function _actorTranslation(stepFile, translationSelected) {
|
|
395
|
+
let actor;
|
|
396
|
+
|
|
397
|
+
for (const translationAvailable of translations) {
|
|
398
|
+
if (actor) {
|
|
399
|
+
break;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
if (translationSelected === translationAvailable) {
|
|
403
|
+
const nameOfActor = require('../../translations')[translationAvailable].I;
|
|
404
|
+
|
|
405
|
+
actor = {
|
|
406
|
+
[nameOfActor]: stepFile,
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
if (!actor) {
|
|
412
|
+
actor = {
|
|
413
|
+
I: stepFile,
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
return actor;
|
|
418
|
+
}
|
package/lib/command/run.js
CHANGED
|
@@ -28,6 +28,12 @@ module.exports = async function (test, options) {
|
|
|
28
28
|
codecept.init(testRoot);
|
|
29
29
|
await codecept.bootstrap();
|
|
30
30
|
codecept.loadTests(test);
|
|
31
|
+
|
|
32
|
+
if (options.verbose) {
|
|
33
|
+
const getInfo = require('./info');
|
|
34
|
+
await getInfo();
|
|
35
|
+
}
|
|
36
|
+
|
|
31
37
|
await codecept.run();
|
|
32
38
|
} catch (err) {
|
|
33
39
|
printError(err);
|
package/lib/helper/Appium.js
CHANGED
|
@@ -117,6 +117,43 @@ const vendorPrefix = {
|
|
|
117
117
|
* }
|
|
118
118
|
* ```
|
|
119
119
|
*
|
|
120
|
+
* Example Android App using Appiumv2 on BrowserStack:
|
|
121
|
+
*
|
|
122
|
+
* ```js
|
|
123
|
+
* {
|
|
124
|
+
* helpers: {
|
|
125
|
+
* Appium: {
|
|
126
|
+
* appiumV2: true,
|
|
127
|
+
* host: "hub-cloud.browserstack.com",
|
|
128
|
+
* port: 4444,
|
|
129
|
+
* user: process.env.BROWSERSTACK_USER,
|
|
130
|
+
* key: process.env.BROWSERSTACK_KEY,
|
|
131
|
+
* app: `bs://c700ce60cf1gjhgjh3ae8ed9770ghjg5a55b8e022f13c5827cg`,
|
|
132
|
+
* browser: '',
|
|
133
|
+
* desiredCapabilities: {
|
|
134
|
+
* 'appPackage': data.packageName,
|
|
135
|
+
* 'deviceName': process.env.DEVICE || 'Google Pixel 3',
|
|
136
|
+
* 'platformName': process.env.PLATFORM || 'android',
|
|
137
|
+
* 'platformVersion': process.env.OS_VERSION || '10.0',
|
|
138
|
+
* 'automationName': process.env.ENGINE || 'UIAutomator2',
|
|
139
|
+
* 'newCommandTimeout': 300000,
|
|
140
|
+
* 'androidDeviceReadyTimeout': 300000,
|
|
141
|
+
* 'androidInstallTimeout': 90000,
|
|
142
|
+
* 'appWaitDuration': 300000,
|
|
143
|
+
* 'autoGrantPermissions': true,
|
|
144
|
+
* 'gpsEnabled': true,
|
|
145
|
+
* 'isHeadless': false,
|
|
146
|
+
* 'noReset': false,
|
|
147
|
+
* 'noSign': true,
|
|
148
|
+
* 'bstack:options' : {
|
|
149
|
+
* "appiumVersion" : "2.0.1",
|
|
150
|
+
* },
|
|
151
|
+
* }
|
|
152
|
+
* }
|
|
153
|
+
* }
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
120
157
|
* Additional configuration params can be used from <https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md>
|
|
121
158
|
*
|
|
122
159
|
* ## Access From Helpers
|
|
@@ -234,7 +271,9 @@ class Appium extends Webdriver {
|
|
|
234
271
|
const _convertedCaps = {};
|
|
235
272
|
for (const [key, value] of Object.entries(capabilities)) {
|
|
236
273
|
if (!key.startsWith(vendorPrefix.appium)) {
|
|
237
|
-
|
|
274
|
+
if (key !== 'platformName') {
|
|
275
|
+
_convertedCaps[`${vendorPrefix.appium}:${key}`] = value;
|
|
276
|
+
}
|
|
238
277
|
} else {
|
|
239
278
|
_convertedCaps[`${key}`] = value;
|
|
240
279
|
}
|
package/lib/helper/Playwright.js
CHANGED
|
@@ -482,6 +482,7 @@ class Playwright extends Helper {
|
|
|
482
482
|
contextOptions.httpCredentials = this.options.basicAuth;
|
|
483
483
|
this.isAuthenticated = true;
|
|
484
484
|
}
|
|
485
|
+
if (this.options.bypassCSP) contextOptions.bypassCSP = this.options.bypassCSP;
|
|
485
486
|
if (this.options.recordVideo) contextOptions.recordVideo = this.options.recordVideo;
|
|
486
487
|
if (this.storageState) contextOptions.storageState = this.storageState;
|
|
487
488
|
if (this.options.userAgent) contextOptions.userAgent = this.options.userAgent;
|
|
@@ -849,8 +850,8 @@ class Playwright extends Helper {
|
|
|
849
850
|
await this.switchTo(null);
|
|
850
851
|
return frame.reduce((p, frameLocator) => p.then(() => this.switchTo(frameLocator)), Promise.resolve());
|
|
851
852
|
}
|
|
852
|
-
await this.switchTo(
|
|
853
|
-
this.withinLocator = new Locator(
|
|
853
|
+
await this.switchTo(frame);
|
|
854
|
+
this.withinLocator = new Locator(frame);
|
|
854
855
|
return;
|
|
855
856
|
}
|
|
856
857
|
|
|
@@ -2551,14 +2552,17 @@ class Playwright extends Helper {
|
|
|
2551
2552
|
|
|
2552
2553
|
// iframe by selector
|
|
2553
2554
|
const els = await this._locate(locator);
|
|
2554
|
-
|
|
2555
|
+
if (!els[0]) {
|
|
2556
|
+
throw new Error(`Element ${JSON.stringify(locator)} was not found by text|CSS|XPath`);
|
|
2557
|
+
}
|
|
2555
2558
|
|
|
2556
2559
|
// get content of the first iframe
|
|
2557
|
-
|
|
2560
|
+
locator = new Locator(locator, 'css');
|
|
2561
|
+
if ((locator.frame && locator.frame === 'iframe') || locator.value.toLowerCase() === 'iframe') {
|
|
2558
2562
|
contentFrame = await this.page.frames()[1];
|
|
2559
2563
|
// get content of the iframe using its name
|
|
2560
|
-
} else if (locator.toLowerCase().includes('name=')) {
|
|
2561
|
-
const frameName = locator.split('=')[1].replace(/"/g, '').replaceAll(/]/g, '');
|
|
2564
|
+
} else if (locator.value.toLowerCase().includes('name=')) {
|
|
2565
|
+
const frameName = locator.value.split('=')[1].replace(/"/g, '').replaceAll(/]/g, '');
|
|
2562
2566
|
contentFrame = await this.page.frame(frameName);
|
|
2563
2567
|
}
|
|
2564
2568
|
|
|
@@ -2566,7 +2570,7 @@ class Playwright extends Helper {
|
|
|
2566
2570
|
this.context = contentFrame;
|
|
2567
2571
|
this.contextLocator = null;
|
|
2568
2572
|
} else {
|
|
2569
|
-
this.context =
|
|
2573
|
+
this.context = this.page.frame(this.page.frames()[1].name());
|
|
2570
2574
|
this.contextLocator = locator;
|
|
2571
2575
|
}
|
|
2572
2576
|
}
|
|
@@ -3514,7 +3518,10 @@ async function elementSelected(element) {
|
|
|
3514
3518
|
|
|
3515
3519
|
function isFrameLocator(locator) {
|
|
3516
3520
|
locator = new Locator(locator);
|
|
3517
|
-
if (locator.isFrame())
|
|
3521
|
+
if (locator.isFrame()) {
|
|
3522
|
+
const _locator = new Locator(locator.value);
|
|
3523
|
+
return _locator.value;
|
|
3524
|
+
}
|
|
3518
3525
|
return false;
|
|
3519
3526
|
}
|
|
3520
3527
|
|
package/lib/helper/Puppeteer.js
CHANGED
|
@@ -604,8 +604,8 @@ class Puppeteer extends Helper {
|
|
|
604
604
|
return this.switchTo(null)
|
|
605
605
|
.then(() => frame.reduce((p, frameLocator) => p.then(() => this.switchTo(frameLocator)), Promise.resolve()));
|
|
606
606
|
}
|
|
607
|
-
await this.switchTo(
|
|
608
|
-
this.withinLocator = new Locator(
|
|
607
|
+
await this.switchTo(frame);
|
|
608
|
+
this.withinLocator = new Locator(frame);
|
|
609
609
|
return;
|
|
610
610
|
}
|
|
611
611
|
|
|
@@ -2011,7 +2011,7 @@ class Puppeteer extends Helper {
|
|
|
2011
2011
|
assertElementExists(els, locator);
|
|
2012
2012
|
|
|
2013
2013
|
return this.waitForFunction(isElementClickable, [els[0]], waitTimeout).catch(async (e) => {
|
|
2014
|
-
if (/failed: timeout/i.test(e.message)) {
|
|
2014
|
+
if (/Waiting failed/i.test(e.message) || /failed: timeout/i.test(e.message)) {
|
|
2015
2015
|
throw new Error(`element ${new Locator(locator).toString()} still not clickable after ${waitTimeout || this.options.waitForTimeout / 1000} sec`);
|
|
2016
2016
|
} else {
|
|
2017
2017
|
throw e;
|
|
@@ -2115,7 +2115,7 @@ class Puppeteer extends Helper {
|
|
|
2115
2115
|
return currUrl.indexOf(urlPart) > -1;
|
|
2116
2116
|
}, { timeout: waitTimeout }, urlPart).catch(async (e) => {
|
|
2117
2117
|
const currUrl = await this._getPageUrl(); // Required because the waitForFunction can't return data.
|
|
2118
|
-
if (/failed: timeout/i.test(e.message)) {
|
|
2118
|
+
if (/Waiting failed:/i.test(e.message) || /failed: timeout/i.test(e.message)) {
|
|
2119
2119
|
throw new Error(`expected url to include ${urlPart}, but found ${currUrl}`);
|
|
2120
2120
|
} else {
|
|
2121
2121
|
throw e;
|
|
@@ -2139,7 +2139,7 @@ class Puppeteer extends Helper {
|
|
|
2139
2139
|
return currUrl.indexOf(urlPart) > -1;
|
|
2140
2140
|
}, { timeout: waitTimeout }, urlPart).catch(async (e) => {
|
|
2141
2141
|
const currUrl = await this._getPageUrl(); // Required because the waitForFunction can't return data.
|
|
2142
|
-
if (/failed: timeout/i.test(e.message)) {
|
|
2142
|
+
if (/Waiting failed/i.test(e.message) || /failed: timeout/i.test(e.message)) {
|
|
2143
2143
|
throw new Error(`expected url to be ${urlPart}, but found ${currUrl}`);
|
|
2144
2144
|
} else {
|
|
2145
2145
|
throw e;
|
|
@@ -2348,6 +2348,10 @@ async function findElements(matcher, locator) {
|
|
|
2348
2348
|
if (locator.react) return findReact(matcher.executionContext(), locator);
|
|
2349
2349
|
locator = new Locator(locator, 'css');
|
|
2350
2350
|
if (!locator.isXPath()) return matcher.$$(locator.simplify());
|
|
2351
|
+
// puppeteer version < 19.4.0 is no longer supported. This one is backward support.
|
|
2352
|
+
if (puppeteer.default?.defaultBrowserRevision) {
|
|
2353
|
+
return matcher.$$(`xpath/${locator.value}`);
|
|
2354
|
+
}
|
|
2351
2355
|
return matcher.$x(locator.value);
|
|
2352
2356
|
}
|
|
2353
2357
|
|
|
@@ -2602,7 +2606,10 @@ async function elementSelected(element) {
|
|
|
2602
2606
|
|
|
2603
2607
|
function isFrameLocator(locator) {
|
|
2604
2608
|
locator = new Locator(locator);
|
|
2605
|
-
if (locator.isFrame())
|
|
2609
|
+
if (locator.isFrame()) {
|
|
2610
|
+
const _locator = new Locator(locator);
|
|
2611
|
+
return _locator.value;
|
|
2612
|
+
}
|
|
2606
2613
|
return false;
|
|
2607
2614
|
}
|
|
2608
2615
|
|
package/lib/pause.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codeceptjs",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.5",
|
|
4
4
|
"description": "Supercharged End 2 End Testing Framework for NodeJS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"acceptance",
|
|
@@ -59,93 +59,93 @@
|
|
|
59
59
|
"prepare": "husky install"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@codeceptjs/configure": "
|
|
63
|
-
"@codeceptjs/helper": "
|
|
64
|
-
"@cucumber/cucumber-expressions": "
|
|
65
|
-
"@cucumber/gherkin": "
|
|
66
|
-
"@cucumber/messages": "
|
|
67
|
-
"@xmldom/xmldom": "
|
|
68
|
-
"acorn": "
|
|
69
|
-
"arrify": "
|
|
70
|
-
"axios": "
|
|
71
|
-
"chai": "
|
|
72
|
-
"chai-deep-match": "
|
|
73
|
-
"chalk": "
|
|
74
|
-
"commander": "
|
|
75
|
-
"cross-spawn": "
|
|
76
|
-
"css-to-xpath": "
|
|
77
|
-
"envinfo": "
|
|
78
|
-
"escape-string-regexp": "
|
|
79
|
-
"figures": "
|
|
80
|
-
"fn-args": "
|
|
81
|
-
"fs-extra": "
|
|
82
|
-
"glob": "
|
|
83
|
-
"html-minifier": "
|
|
84
|
-
"inquirer": "
|
|
85
|
-
"joi": "
|
|
86
|
-
"js-beautify": "
|
|
87
|
-
"lodash.clonedeep": "
|
|
88
|
-
"lodash.merge": "
|
|
89
|
-
"mkdirp": "
|
|
90
|
-
"mocha": "
|
|
91
|
-
"ms": "
|
|
92
|
-
"openai": "
|
|
93
|
-
"ora-classic": "
|
|
94
|
-
"parse-function": "
|
|
95
|
-
"parse5": "
|
|
96
|
-
"promise-retry": "
|
|
97
|
-
"resq": "
|
|
98
|
-
"sprintf-js": "
|
|
99
|
-
"uuid": "
|
|
62
|
+
"@codeceptjs/configure": "0.10.0",
|
|
63
|
+
"@codeceptjs/helper": "2.0.1",
|
|
64
|
+
"@cucumber/cucumber-expressions": "16",
|
|
65
|
+
"@cucumber/gherkin": "26",
|
|
66
|
+
"@cucumber/messages": "22.0.0",
|
|
67
|
+
"@xmldom/xmldom": "0.8.10",
|
|
68
|
+
"acorn": "8.10.0",
|
|
69
|
+
"arrify": "2.0.1",
|
|
70
|
+
"axios": "1.3.3",
|
|
71
|
+
"chai": "4.3.6",
|
|
72
|
+
"chai-deep-match": "1.2.1",
|
|
73
|
+
"chalk": "4.1.2",
|
|
74
|
+
"commander": "11.0.0",
|
|
75
|
+
"cross-spawn": "7.0.3",
|
|
76
|
+
"css-to-xpath": "0.1.0",
|
|
77
|
+
"envinfo": "7.8.1",
|
|
78
|
+
"escape-string-regexp": "4.0.0",
|
|
79
|
+
"figures": "3.2.0",
|
|
80
|
+
"fn-args": "4.0.0",
|
|
81
|
+
"fs-extra": "8.1.0",
|
|
82
|
+
"glob": "6.0.1",
|
|
83
|
+
"html-minifier": "4.0.0",
|
|
84
|
+
"inquirer": "6.5.2",
|
|
85
|
+
"joi": "17.6.0",
|
|
86
|
+
"js-beautify": "1.14.0",
|
|
87
|
+
"lodash.clonedeep": "4.5.0",
|
|
88
|
+
"lodash.merge": "4.6.2",
|
|
89
|
+
"mkdirp": "1.0.4",
|
|
90
|
+
"mocha": "10.2.0",
|
|
91
|
+
"ms": "2.1.3",
|
|
92
|
+
"openai": "3.2.1",
|
|
93
|
+
"ora-classic": "5.4.2",
|
|
94
|
+
"parse-function": "5.6.4",
|
|
95
|
+
"parse5": "7.1.2",
|
|
96
|
+
"promise-retry": "1.1.1",
|
|
97
|
+
"resq": "1.10.2",
|
|
98
|
+
"sprintf-js": "1.1.1",
|
|
99
|
+
"uuid": "9.0"
|
|
100
100
|
},
|
|
101
101
|
"devDependencies": {
|
|
102
|
-
"@codeceptjs/detox-helper": "
|
|
103
|
-
"@codeceptjs/mock-request": "
|
|
104
|
-
"@faker-js/faker": "
|
|
105
|
-
"@pollyjs/adapter-puppeteer": "
|
|
106
|
-
"@pollyjs/core": "
|
|
107
|
-
"@types/inquirer": "
|
|
108
|
-
"@types/node": "
|
|
109
|
-
"@wdio/sauce-service": "
|
|
110
|
-
"@wdio/selenium-standalone-service": "
|
|
111
|
-
"@wdio/utils": "
|
|
102
|
+
"@codeceptjs/detox-helper": "1.0.2",
|
|
103
|
+
"@codeceptjs/mock-request": "0.3.1",
|
|
104
|
+
"@faker-js/faker": "7.6.0",
|
|
105
|
+
"@pollyjs/adapter-puppeteer": "6.0.5",
|
|
106
|
+
"@pollyjs/core": "5.1.0",
|
|
107
|
+
"@types/inquirer": "9.0.3",
|
|
108
|
+
"@types/node": "20.4.4",
|
|
109
|
+
"@wdio/sauce-service": "8.3.8",
|
|
110
|
+
"@wdio/selenium-standalone-service": "8.3.2",
|
|
111
|
+
"@wdio/utils": "8.3.0",
|
|
112
112
|
"apollo-server-express": "2.25.3",
|
|
113
|
-
"chai-as-promised": "
|
|
114
|
-
"chai-subset": "
|
|
115
|
-
"contributor-faces": "
|
|
116
|
-
"documentation": "
|
|
117
|
-
"dtslint": "
|
|
118
|
-
"electron": "
|
|
119
|
-
"eslint": "
|
|
120
|
-
"eslint-config-airbnb-base": "
|
|
121
|
-
"eslint-plugin-import": "
|
|
122
|
-
"eslint-plugin-mocha": "
|
|
123
|
-
"expect": "
|
|
124
|
-
"express": "
|
|
125
|
-
"graphql": "
|
|
126
|
-
"husky": "
|
|
127
|
-
"inquirer-test": "
|
|
128
|
-
"jsdoc": "
|
|
129
|
-
"jsdoc-typeof-plugin": "
|
|
130
|
-
"json-server": "
|
|
131
|
-
"playwright": "
|
|
132
|
-
"puppeteer": "
|
|
133
|
-
"qrcode-terminal": "
|
|
134
|
-
"rosie": "
|
|
135
|
-
"runok": "
|
|
136
|
-
"sinon": "
|
|
137
|
-
"sinon-chai": "
|
|
138
|
-
"testcafe": "
|
|
139
|
-
"ts-morph": "
|
|
140
|
-
"ts-node": "
|
|
141
|
-
"tsd-jsdoc": "
|
|
142
|
-
"typedoc": "
|
|
143
|
-
"typedoc-plugin-markdown": "
|
|
144
|
-
"typescript": "
|
|
145
|
-
"wdio-docker-service": "
|
|
146
|
-
"webdriverio": "
|
|
147
|
-
"xml2js": "
|
|
148
|
-
"xmldom": "
|
|
113
|
+
"chai-as-promised": "7.1.1",
|
|
114
|
+
"chai-subset": "1.6.0",
|
|
115
|
+
"contributor-faces": "1.0.3",
|
|
116
|
+
"documentation": "12.3.0",
|
|
117
|
+
"dtslint": "4.1.6",
|
|
118
|
+
"electron": "26.1.0",
|
|
119
|
+
"eslint": "8.45.0",
|
|
120
|
+
"eslint-config-airbnb-base": "15.0.0",
|
|
121
|
+
"eslint-plugin-import": "2.25.4",
|
|
122
|
+
"eslint-plugin-mocha": "6.3.0",
|
|
123
|
+
"expect": "29.6.2",
|
|
124
|
+
"express": "4.17.2",
|
|
125
|
+
"graphql": "14.6.0",
|
|
126
|
+
"husky": "8.0.1",
|
|
127
|
+
"inquirer-test": "2.0.1",
|
|
128
|
+
"jsdoc": "3.6.10",
|
|
129
|
+
"jsdoc-typeof-plugin": "1.0.0",
|
|
130
|
+
"json-server": "0.10.1",
|
|
131
|
+
"playwright": "1.35.1",
|
|
132
|
+
"puppeteer": "21.1.1",
|
|
133
|
+
"qrcode-terminal": "0.12.0",
|
|
134
|
+
"rosie": "2.1.0",
|
|
135
|
+
"runok": "0.9.2",
|
|
136
|
+
"sinon": "15.2.0",
|
|
137
|
+
"sinon-chai": "3.7.0",
|
|
138
|
+
"testcafe": "3.0.1",
|
|
139
|
+
"ts-morph": "19.0.0",
|
|
140
|
+
"ts-node": "10.9.1",
|
|
141
|
+
"tsd-jsdoc": "2.5.0",
|
|
142
|
+
"typedoc": "0.24.8",
|
|
143
|
+
"typedoc-plugin-markdown": "3.13.4",
|
|
144
|
+
"typescript": "5.1.6",
|
|
145
|
+
"wdio-docker-service": "1.5.0",
|
|
146
|
+
"webdriverio": "8.3.8",
|
|
147
|
+
"xml2js": "0.6.0",
|
|
148
|
+
"xmldom": "0.6.0",
|
|
149
149
|
"xpath": "0.0.33"
|
|
150
150
|
},
|
|
151
151
|
"engines": {
|
|
@@ -2071,6 +2071,8 @@ declare namespace CodeceptJS {
|
|
|
2071
2071
|
* ```
|
|
2072
2072
|
* @param fn - function to be executed in browser context.
|
|
2073
2073
|
* @param args - to be passed to function.
|
|
2074
|
+
* @returns script return value
|
|
2075
|
+
*
|
|
2074
2076
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
2075
2077
|
*
|
|
2076
2078
|
*
|
|
@@ -2100,6 +2102,8 @@ declare namespace CodeceptJS {
|
|
|
2100
2102
|
* ```
|
|
2101
2103
|
* @param fn - function to be executed in browser context.
|
|
2102
2104
|
* @param args - to be passed to function.
|
|
2105
|
+
* @returns script return value
|
|
2106
|
+
*
|
|
2103
2107
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
2104
2108
|
*
|
|
2105
2109
|
*
|
|
@@ -5564,6 +5568,8 @@ declare namespace CodeceptJS {
|
|
|
5564
5568
|
* ```
|
|
5565
5569
|
* @param fn - function to be executed in browser context.
|
|
5566
5570
|
* @param args - to be passed to function.
|
|
5571
|
+
* @returns script return value
|
|
5572
|
+
*
|
|
5567
5573
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
5568
5574
|
*/
|
|
5569
5575
|
executeScript(fn: string | ((...params: any[]) => any), ...args: any[]): Promise<any>;
|
|
@@ -5590,6 +5596,8 @@ declare namespace CodeceptJS {
|
|
|
5590
5596
|
* ```
|
|
5591
5597
|
* @param fn - function to be executed in browser context.
|
|
5592
5598
|
* @param args - to be passed to function.
|
|
5599
|
+
* @returns script return value
|
|
5600
|
+
*
|
|
5593
5601
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
5594
5602
|
*/
|
|
5595
5603
|
executeAsyncScript(fn: string | ((...params: any[]) => any), ...args: any[]): Promise<any>;
|
|
@@ -7314,6 +7322,8 @@ declare namespace CodeceptJS {
|
|
|
7314
7322
|
* ```
|
|
7315
7323
|
* @param fn - function to be executed in browser context.
|
|
7316
7324
|
* @param args - to be passed to function.
|
|
7325
|
+
* @returns script return value
|
|
7326
|
+
*
|
|
7317
7327
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
7318
7328
|
*
|
|
7319
7329
|
*
|
|
@@ -7343,6 +7353,8 @@ declare namespace CodeceptJS {
|
|
|
7343
7353
|
* ```
|
|
7344
7354
|
* @param fn - function to be executed in browser context.
|
|
7345
7355
|
* @param args - to be passed to function.
|
|
7356
|
+
* @returns script return value
|
|
7357
|
+
*
|
|
7346
7358
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
7347
7359
|
*
|
|
7348
7360
|
*
|
|
@@ -8596,6 +8608,8 @@ declare namespace CodeceptJS {
|
|
|
8596
8608
|
* ```
|
|
8597
8609
|
* @param fn - function to be executed in browser context.
|
|
8598
8610
|
* @param args - to be passed to function.
|
|
8611
|
+
* @returns script return value
|
|
8612
|
+
*
|
|
8599
8613
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
8600
8614
|
*
|
|
8601
8615
|
*
|
|
@@ -10076,6 +10090,8 @@ declare namespace CodeceptJS {
|
|
|
10076
10090
|
* ```
|
|
10077
10091
|
* @param fn - function to be executed in browser context.
|
|
10078
10092
|
* @param args - to be passed to function.
|
|
10093
|
+
* @returns script return value
|
|
10094
|
+
*
|
|
10079
10095
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
10080
10096
|
*
|
|
10081
10097
|
*
|
|
@@ -10106,6 +10122,8 @@ declare namespace CodeceptJS {
|
|
|
10106
10122
|
* ```
|
|
10107
10123
|
* @param fn - function to be executed in browser context.
|
|
10108
10124
|
* @param args - to be passed to function.
|
|
10125
|
+
* @returns script return value
|
|
10126
|
+
*
|
|
10109
10127
|
* ⚠️ returns a _promise_ which is synchronized internally by recorder
|
|
10110
10128
|
*/
|
|
10111
10129
|
executeAsyncScript(fn: string | ((...params: any[]) => any), ...args: any[]): Promise<any>;
|