codeceptjs 2.1.3 → 2.2.1
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 +125 -37
- package/README.md +15 -22
- package/bin/codecept.js +4 -1
- package/docs/acceptance.md +44 -1
- package/docs/advanced.md +1 -1
- package/docs/angular.md +6 -9
- package/docs/basics.md +388 -75
- package/docs/bdd.md +4 -3
- package/docs/best.md +1 -1
- package/docs/books.md +31 -0
- package/docs/build/Appium.js +215 -176
- package/docs/build/Nightmare.js +618 -489
- package/docs/build/Polly.js +189 -0
- package/docs/build/Protractor.js +747 -608
- package/docs/build/Puppeteer.js +914 -633
- package/docs/build/REST.js +1 -1
- package/docs/build/TestCafe.js +1835 -0
- package/docs/build/WebDriver.js +861 -805
- package/docs/build/WebDriverIO.js +616 -617
- package/docs/changelog.md +410 -316
- package/docs/commands.md +6 -6
- package/docs/community-helpers.md +2 -0
- package/docs/detox.md +235 -0
- package/docs/examples.md +23 -0
- package/docs/helpers/ApiDataFactory.md +11 -10
- package/docs/helpers/Appium.md +130 -61
- package/docs/helpers/Detox.md +579 -0
- package/docs/helpers/FileSystem.md +2 -1
- package/docs/helpers/Mochawesome.md +1 -0
- package/docs/helpers/Nightmare.md +348 -128
- package/docs/helpers/Polly.md +85 -0
- package/docs/helpers/Protractor.md +451 -184
- package/docs/helpers/Puppeteer-firefox.md +55 -0
- package/docs/helpers/Puppeteer.md +619 -183
- package/docs/helpers/REST.md +17 -16
- package/docs/helpers/SeleniumWebdriver.md +9 -8
- package/docs/helpers/TestCafe.md +1168 -0
- package/docs/helpers/WebDriver.md +600 -291
- package/docs/helpers/WebDriverIO.md +393 -278
- package/docs/helpers.md +37 -18
- package/docs/locators.md +2 -0
- package/docs/mobile-react-native-locators.md +64 -0
- package/docs/mobile.md +5 -0
- package/docs/plugins.md +54 -13
- package/docs/puppeteer.md +74 -26
- package/docs/quickstart.md +47 -12
- package/docs/react.md +67 -0
- package/docs/reports.md +1 -1
- package/docs/{webapi/_keys.mustache → shared/keys.mustache} +0 -0
- package/docs/shared/react.mustache +1 -0
- package/docs/testcafe.md +157 -0
- package/docs/videos.md +19 -0
- package/docs/webapi/amOnPage.mustache +1 -1
- package/docs/webapi/appendField.mustache +2 -2
- package/docs/webapi/attachFile.mustache +2 -2
- package/docs/webapi/checkOption.mustache +2 -2
- package/docs/webapi/clearCookie.mustache +1 -1
- package/docs/webapi/clearField.mustache +1 -1
- package/docs/webapi/click.mustache +2 -2
- package/docs/webapi/clickLink.mustache +3 -3
- package/docs/webapi/dontSee.mustache +6 -3
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +7 -1
- package/docs/webapi/dontSeeCookie.mustache +5 -1
- package/docs/webapi/dontSeeCurrentUrlEquals.mustache +6 -1
- package/docs/webapi/dontSeeElement.mustache +5 -1
- package/docs/webapi/dontSeeElementInDOM.mustache +5 -1
- package/docs/webapi/dontSeeInCurrentUrl.mustache +1 -1
- package/docs/webapi/dontSeeInField.mustache +7 -2
- package/docs/webapi/dontSeeInSource.mustache +5 -1
- package/docs/webapi/dontSeeInTitle.mustache +5 -1
- package/docs/webapi/doubleClick.mustache +2 -2
- package/docs/webapi/downloadFile.mustache +2 -2
- package/docs/webapi/dragAndDrop.mustache +2 -2
- package/docs/webapi/dragSlider.mustache +2 -2
- package/docs/webapi/executeAsyncScript.mustache +1 -1
- package/docs/webapi/executeScript.mustache +1 -1
- package/docs/webapi/fillField.mustache +2 -2
- package/docs/webapi/grabAttributeFrom.mustache +3 -2
- package/docs/webapi/grabBrowserLogs.mustache +3 -1
- package/docs/webapi/grabCookie.mustache +2 -1
- package/docs/webapi/grabCssPropertyFrom.mustache +3 -2
- package/docs/webapi/grabCurrentUrl.mustache +3 -1
- package/docs/webapi/grabDataFromPerformanceTiming.mustache +19 -0
- package/docs/webapi/grabHTMLFrom.mustache +2 -1
- package/docs/webapi/grabNumberOfOpenTabs.mustache +4 -2
- package/docs/webapi/grabNumberOfVisibleElements.mustache +3 -2
- package/docs/webapi/grabPageScrollPosition.mustache +3 -1
- package/docs/webapi/grabSource.mustache +3 -1
- package/docs/webapi/grabTextFrom.mustache +2 -1
- package/docs/webapi/grabTitle.mustache +3 -1
- package/docs/webapi/grabValueFrom.mustache +2 -1
- package/docs/webapi/moveCursorTo.mustache +3 -3
- package/docs/webapi/pressKey.mustache +1 -1
- package/docs/webapi/resizeWindow.mustache +2 -2
- package/docs/webapi/rightClick.mustache +2 -2
- package/docs/webapi/saveScreenshot.mustache +3 -3
- package/docs/webapi/say.mustache +2 -2
- package/docs/webapi/scrollPageToBottom.mustache +1 -1
- package/docs/webapi/scrollPageToTop.mustache +1 -1
- package/docs/webapi/scrollTo.mustache +3 -3
- package/docs/webapi/see.mustache +2 -2
- package/docs/webapi/seeAttributesOnElements.mustache +3 -3
- package/docs/webapi/seeCheckboxIsChecked.mustache +2 -1
- package/docs/webapi/seeCookie.mustache +1 -1
- package/docs/webapi/seeCssPropertiesOnElements.mustache +2 -2
- package/docs/webapi/seeCurrentUrlEquals.mustache +1 -1
- package/docs/webapi/seeElement.mustache +1 -1
- package/docs/webapi/seeElementInDOM.mustache +1 -1
- package/docs/webapi/seeInCurrentUrl.mustache +1 -1
- package/docs/webapi/seeInField.mustache +2 -2
- package/docs/webapi/seeInSource.mustache +1 -1
- package/docs/webapi/seeInTitle.mustache +5 -1
- package/docs/webapi/seeNumberOfElements.mustache +10 -0
- package/docs/webapi/seeNumberOfVisibleElements.mustache +2 -2
- package/docs/webapi/selectOption.mustache +2 -2
- package/docs/webapi/setCookie.mustache +1 -1
- package/docs/webapi/switchTo.mustache +6 -1
- package/docs/webapi/uncheckOption.mustache +2 -2
- package/docs/webapi/wait.mustache +1 -2
- package/docs/webapi/waitForDetached.mustache +3 -3
- package/docs/webapi/waitForElement.mustache +2 -2
- package/docs/webapi/waitForEnabled.mustache +1 -1
- package/docs/webapi/waitForFunction.mustache +3 -3
- package/docs/webapi/waitForInvisible.mustache +3 -3
- package/docs/webapi/waitForText.mustache +3 -3
- package/docs/webapi/waitForValue.mustache +3 -3
- package/docs/webapi/waitForVisible.mustache +3 -3
- package/docs/webapi/waitInUrl.mustache +2 -2
- package/docs/webapi/waitNumberOfVisibleElements.mustache +3 -3
- package/docs/webapi/waitToHide.mustache +3 -3
- package/docs/webapi/waitUntil.mustache +3 -3
- package/docs/webapi/waitUrlEquals.mustache +2 -2
- package/docs/webdriver.md +453 -0
- package/lib/codecept.js +11 -9
- package/lib/command/definitions.js +183 -30
- package/lib/command/gherkin/snippets.js +29 -9
- package/lib/command/init.js +31 -9
- package/lib/command/run-multiple.js +46 -59
- package/lib/command/utils.js +1 -1
- package/lib/container.js +30 -4
- package/lib/data/dataScenarioConfig.js +18 -0
- package/lib/helper/Appium.js +24 -24
- package/lib/helper/Nightmare.js +81 -84
- package/lib/helper/Polly.js +189 -0
- package/lib/helper/Protractor.js +96 -86
- package/lib/helper/Puppeteer.js +238 -113
- package/lib/helper/REST.js +1 -1
- package/lib/helper/TestCafe.js +1257 -0
- package/lib/helper/WebDriver.js +217 -277
- package/lib/helper/WebDriverIO.js +75 -75
- package/lib/helper/clientscripts/nightmare.js +8 -0
- package/lib/helper/extras/React.js +55 -0
- package/lib/helper/testcafe/testControllerHolder.js +42 -0
- package/lib/helper/testcafe/testcafe-utils.js +63 -0
- package/lib/history.js +39 -0
- package/lib/hooks.js +25 -1
- package/lib/interfaces/gherkin.js +17 -1
- package/lib/interfaces/scenarioConfig.js +2 -2
- package/lib/listener/config.js +3 -3
- package/lib/locator.js +6 -0
- package/lib/pause.js +22 -1
- package/lib/plugin/allure.js +63 -0
- package/lib/plugin/autoLogin.js +65 -16
- package/lib/plugin/puppeteerCoverage.js +6 -1
- package/lib/plugin/stepByStepReport.js +4 -3
- package/lib/scenario.js +23 -17
- package/lib/step.js +5 -2
- package/lib/ui.js +1 -1
- package/lib/utils.js +70 -20
- package/package.json +20 -19
- package/translations/de-DE.js +69 -0
- package/translations/index.js +1 -0
- package/docs/video.md +0 -26
|
@@ -61,6 +61,24 @@ class DataScenarioConfig {
|
|
|
61
61
|
this.scenarios.forEach(scenario => scenario.tag(tagName));
|
|
62
62
|
return this;
|
|
63
63
|
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Pass in additional objects to inject into test
|
|
67
|
+
* @param {*} obj
|
|
68
|
+
*/
|
|
69
|
+
inject(obj) {
|
|
70
|
+
this.scenarios.forEach(scenario => scenario.inject(obj));
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Dynamically injects dependencies, see https://codecept.io/pageobjects/#dynamic-injection
|
|
76
|
+
* @param {*} dependencies
|
|
77
|
+
*/
|
|
78
|
+
injectDependencies(dependencies) {
|
|
79
|
+
this.scenarios.forEach(scenario => scenario.injectDependencies(dependencies));
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
64
82
|
}
|
|
65
83
|
|
|
66
84
|
module.exports = DataScenarioConfig;
|
package/lib/helper/Appium.js
CHANGED
|
@@ -116,7 +116,7 @@ class Appium extends Webdriver {
|
|
|
116
116
|
const defaults = {
|
|
117
117
|
// webdriverio defaults
|
|
118
118
|
protocol: 'http',
|
|
119
|
-
|
|
119
|
+
hostname: '0.0.0.0', // webdriverio specs
|
|
120
120
|
port: 4723,
|
|
121
121
|
path: '/wd/hub',
|
|
122
122
|
|
|
@@ -146,6 +146,8 @@ class Appium extends Webdriver {
|
|
|
146
146
|
config.capabilities.platformName = config.platform || config.capabilities.platformName;
|
|
147
147
|
config.waitForTimeout /= 1000; // convert to seconds
|
|
148
148
|
|
|
149
|
+
// [CodeceptJS compatible] transform host to hostname
|
|
150
|
+
config.hostname = config.host || config.hostname;
|
|
149
151
|
|
|
150
152
|
if (!config.app && config.capabilities.browserName) {
|
|
151
153
|
this.isWeb = true;
|
|
@@ -1219,7 +1221,7 @@ class Appium extends Webdriver {
|
|
|
1219
1221
|
}
|
|
1220
1222
|
|
|
1221
1223
|
/**
|
|
1222
|
-
* {{>
|
|
1224
|
+
* {{> appendField }}
|
|
1223
1225
|
*
|
|
1224
1226
|
*/
|
|
1225
1227
|
async appendField(field, value) {
|
|
@@ -1228,7 +1230,7 @@ class Appium extends Webdriver {
|
|
|
1228
1230
|
}
|
|
1229
1231
|
|
|
1230
1232
|
/**
|
|
1231
|
-
* {{>
|
|
1233
|
+
* {{> checkOption }}
|
|
1232
1234
|
*
|
|
1233
1235
|
*/
|
|
1234
1236
|
async checkOption(field) {
|
|
@@ -1237,7 +1239,7 @@ class Appium extends Webdriver {
|
|
|
1237
1239
|
}
|
|
1238
1240
|
|
|
1239
1241
|
/**
|
|
1240
|
-
* {{>
|
|
1242
|
+
* {{> click }}
|
|
1241
1243
|
*
|
|
1242
1244
|
*/
|
|
1243
1245
|
async click(locator, context) {
|
|
@@ -1246,7 +1248,7 @@ class Appium extends Webdriver {
|
|
|
1246
1248
|
}
|
|
1247
1249
|
|
|
1248
1250
|
/**
|
|
1249
|
-
* {{>
|
|
1251
|
+
* {{> dontSeeCheckboxIsChecked }}
|
|
1250
1252
|
*
|
|
1251
1253
|
*/
|
|
1252
1254
|
async dontSeeCheckboxIsChecked(field) {
|
|
@@ -1255,16 +1257,15 @@ class Appium extends Webdriver {
|
|
|
1255
1257
|
}
|
|
1256
1258
|
|
|
1257
1259
|
/**
|
|
1258
|
-
* {{>
|
|
1259
|
-
*
|
|
1260
|
+
* {{> dontSeeElement }}
|
|
1260
1261
|
*/
|
|
1261
|
-
async dontSeeElement(locator
|
|
1262
|
+
async dontSeeElement(locator) {
|
|
1262
1263
|
if (this.isWeb) return super.dontSeeElement(locator);
|
|
1263
1264
|
return super.dontSeeElement(parseLocator.call(this, locator));
|
|
1264
1265
|
}
|
|
1265
1266
|
|
|
1266
1267
|
/**
|
|
1267
|
-
* {{>
|
|
1268
|
+
* {{> dontSeeInField }}
|
|
1268
1269
|
*
|
|
1269
1270
|
*/
|
|
1270
1271
|
async dontSeeInField(field, value) {
|
|
@@ -1274,16 +1275,15 @@ class Appium extends Webdriver {
|
|
|
1274
1275
|
|
|
1275
1276
|
|
|
1276
1277
|
/**
|
|
1277
|
-
* {{>
|
|
1278
|
-
*
|
|
1278
|
+
* {{> dontSee }}
|
|
1279
1279
|
*/
|
|
1280
|
-
async dontSee(text, context) {
|
|
1280
|
+
async dontSee(text, context = null) {
|
|
1281
1281
|
if (this.isWeb) return super.dontSee(text, context);
|
|
1282
1282
|
return super.dontSee(text, parseLocator.call(this, context));
|
|
1283
1283
|
}
|
|
1284
1284
|
|
|
1285
1285
|
/**
|
|
1286
|
-
* {{>
|
|
1286
|
+
* {{> fillField }}
|
|
1287
1287
|
*
|
|
1288
1288
|
*/
|
|
1289
1289
|
async fillField(field, value) {
|
|
@@ -1293,7 +1293,7 @@ class Appium extends Webdriver {
|
|
|
1293
1293
|
}
|
|
1294
1294
|
|
|
1295
1295
|
/**
|
|
1296
|
-
* {{>
|
|
1296
|
+
* {{> grabTextFrom }}
|
|
1297
1297
|
*
|
|
1298
1298
|
*/
|
|
1299
1299
|
async grabTextFrom(locator) {
|
|
@@ -1302,7 +1302,7 @@ class Appium extends Webdriver {
|
|
|
1302
1302
|
}
|
|
1303
1303
|
|
|
1304
1304
|
/**
|
|
1305
|
-
* {{>
|
|
1305
|
+
* {{> grabValueFrom }}
|
|
1306
1306
|
*
|
|
1307
1307
|
*/
|
|
1308
1308
|
async grabValueFrom(locator) {
|
|
@@ -1311,7 +1311,7 @@ class Appium extends Webdriver {
|
|
|
1311
1311
|
}
|
|
1312
1312
|
|
|
1313
1313
|
/**
|
|
1314
|
-
* {{>
|
|
1314
|
+
* {{> seeCheckboxIsChecked }}
|
|
1315
1315
|
*
|
|
1316
1316
|
*/
|
|
1317
1317
|
async seeCheckboxIsChecked(field) {
|
|
@@ -1320,7 +1320,7 @@ class Appium extends Webdriver {
|
|
|
1320
1320
|
}
|
|
1321
1321
|
|
|
1322
1322
|
/**
|
|
1323
|
-
* {{>
|
|
1323
|
+
* {{> seeElement }}
|
|
1324
1324
|
*
|
|
1325
1325
|
*/
|
|
1326
1326
|
async seeElement(locator) {
|
|
@@ -1329,7 +1329,7 @@ class Appium extends Webdriver {
|
|
|
1329
1329
|
}
|
|
1330
1330
|
|
|
1331
1331
|
/**
|
|
1332
|
-
* {{>
|
|
1332
|
+
* {{> seeInField }}
|
|
1333
1333
|
*
|
|
1334
1334
|
*/
|
|
1335
1335
|
async seeInField(field, value) {
|
|
@@ -1338,7 +1338,7 @@ class Appium extends Webdriver {
|
|
|
1338
1338
|
}
|
|
1339
1339
|
|
|
1340
1340
|
/**
|
|
1341
|
-
* {{>
|
|
1341
|
+
* {{> see }}
|
|
1342
1342
|
*
|
|
1343
1343
|
*/
|
|
1344
1344
|
async see(text, context) {
|
|
@@ -1347,7 +1347,7 @@ class Appium extends Webdriver {
|
|
|
1347
1347
|
}
|
|
1348
1348
|
|
|
1349
1349
|
/**
|
|
1350
|
-
* {{>
|
|
1350
|
+
* {{> selectOption }}
|
|
1351
1351
|
*
|
|
1352
1352
|
* * Supported on only for web testing!
|
|
1353
1353
|
*/
|
|
@@ -1357,7 +1357,7 @@ class Appium extends Webdriver {
|
|
|
1357
1357
|
}
|
|
1358
1358
|
|
|
1359
1359
|
/**
|
|
1360
|
-
* {{>
|
|
1360
|
+
* {{> waitForElement }}
|
|
1361
1361
|
*
|
|
1362
1362
|
*/
|
|
1363
1363
|
async waitForElement(locator, sec = null) {
|
|
@@ -1366,7 +1366,7 @@ class Appium extends Webdriver {
|
|
|
1366
1366
|
}
|
|
1367
1367
|
|
|
1368
1368
|
/**
|
|
1369
|
-
* {{>
|
|
1369
|
+
* {{> waitForVisible }}
|
|
1370
1370
|
*
|
|
1371
1371
|
*/
|
|
1372
1372
|
async waitForVisible(locator, sec = null) {
|
|
@@ -1375,7 +1375,7 @@ class Appium extends Webdriver {
|
|
|
1375
1375
|
}
|
|
1376
1376
|
|
|
1377
1377
|
/**
|
|
1378
|
-
* {{>
|
|
1378
|
+
* {{> waitForInvisible }}
|
|
1379
1379
|
*
|
|
1380
1380
|
*/
|
|
1381
1381
|
async waitForInvisible(locator, sec = null) {
|
|
@@ -1384,7 +1384,7 @@ class Appium extends Webdriver {
|
|
|
1384
1384
|
}
|
|
1385
1385
|
|
|
1386
1386
|
/**
|
|
1387
|
-
* {{>
|
|
1387
|
+
* {{> waitForText }}
|
|
1388
1388
|
*
|
|
1389
1389
|
*/
|
|
1390
1390
|
async waitForText(text, sec = null, context = null) {
|