codeceptjs 3.5.10 → 3.5.12-beta.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.
Files changed (225) hide show
  1. package/README.md +3 -3
  2. package/lib/command/run-multiple.js +3 -1
  3. package/lib/command/run-workers.js +32 -1
  4. package/lib/command/workers/runTests.js +18 -2
  5. package/lib/helper/Expect.js +33 -33
  6. package/lib/helper/Playwright.js +49 -26
  7. package/lib/helper/Puppeteer.js +41 -19
  8. package/lib/helper/WebDriver.js +155 -48
  9. package/lib/helper/extras/PlaywrightReactVueLocator.js +38 -0
  10. package/lib/locator.js +17 -4
  11. package/lib/plugin/retryFailedStep.js +6 -2
  12. package/lib/plugin/retryTo.js +2 -2
  13. package/lib/plugin/tryTo.js +5 -4
  14. package/package.json +25 -22
  15. package/typings/index.d.ts +8 -5
  16. package/typings/promiseBasedTypes.d.ts +203 -75
  17. package/typings/types.d.ts +213 -145
  18. package/docs/advanced.md +0 -351
  19. package/docs/ai.md +0 -248
  20. package/docs/api.md +0 -323
  21. package/docs/basics.md +0 -979
  22. package/docs/bdd.md +0 -539
  23. package/docs/best.md +0 -237
  24. package/docs/books.md +0 -37
  25. package/docs/bootstrap.md +0 -135
  26. package/docs/build/ApiDataFactory.js +0 -410
  27. package/docs/build/Appium.js +0 -2027
  28. package/docs/build/Expect.js +0 -422
  29. package/docs/build/FileSystem.js +0 -228
  30. package/docs/build/GraphQL.js +0 -229
  31. package/docs/build/GraphQLDataFactory.js +0 -309
  32. package/docs/build/JSONResponse.js +0 -338
  33. package/docs/build/Mochawesome.js +0 -71
  34. package/docs/build/Nightmare.js +0 -2152
  35. package/docs/build/OpenAI.js +0 -126
  36. package/docs/build/Playwright.js +0 -5078
  37. package/docs/build/Protractor.js +0 -2706
  38. package/docs/build/Puppeteer.js +0 -3874
  39. package/docs/build/REST.js +0 -344
  40. package/docs/build/TestCafe.js +0 -2125
  41. package/docs/build/WebDriver.js +0 -4124
  42. package/docs/changelog.md +0 -2572
  43. package/docs/commands.md +0 -266
  44. package/docs/community-helpers.md +0 -58
  45. package/docs/configuration.md +0 -157
  46. package/docs/continuous-integration.md +0 -22
  47. package/docs/custom-helpers.md +0 -306
  48. package/docs/data.md +0 -379
  49. package/docs/detox.md +0 -235
  50. package/docs/docker.md +0 -136
  51. package/docs/email.md +0 -183
  52. package/docs/examples.md +0 -149
  53. package/docs/helpers/ApiDataFactory.md +0 -266
  54. package/docs/helpers/Appium.md +0 -1374
  55. package/docs/helpers/Detox.md +0 -586
  56. package/docs/helpers/Expect.md +0 -275
  57. package/docs/helpers/FileSystem.md +0 -152
  58. package/docs/helpers/GraphQL.md +0 -151
  59. package/docs/helpers/GraphQLDataFactory.md +0 -226
  60. package/docs/helpers/JSONResponse.md +0 -254
  61. package/docs/helpers/Mochawesome.md +0 -8
  62. package/docs/helpers/MockRequest.md +0 -377
  63. package/docs/helpers/Nightmare.md +0 -1305
  64. package/docs/helpers/OpenAI.md +0 -70
  65. package/docs/helpers/Playwright.md +0 -2706
  66. package/docs/helpers/Polly.md +0 -44
  67. package/docs/helpers/Protractor.md +0 -1769
  68. package/docs/helpers/Puppeteer-firefox.md +0 -86
  69. package/docs/helpers/Puppeteer.md +0 -2291
  70. package/docs/helpers/REST.md +0 -218
  71. package/docs/helpers/TestCafe.md +0 -1321
  72. package/docs/helpers/WebDriver.md +0 -2460
  73. package/docs/hooks.md +0 -340
  74. package/docs/index.md +0 -111
  75. package/docs/installation.md +0 -75
  76. package/docs/internal-api.md +0 -266
  77. package/docs/locators.md +0 -331
  78. package/docs/mobile-react-native-locators.md +0 -67
  79. package/docs/mobile.md +0 -338
  80. package/docs/pageobjects.md +0 -291
  81. package/docs/parallel.md +0 -400
  82. package/docs/playwright.md +0 -632
  83. package/docs/plugins.md +0 -1259
  84. package/docs/puppeteer.md +0 -316
  85. package/docs/quickstart.md +0 -162
  86. package/docs/react.md +0 -69
  87. package/docs/reports.md +0 -392
  88. package/docs/secrets.md +0 -36
  89. package/docs/shadow.md +0 -68
  90. package/docs/shared/keys.mustache +0 -31
  91. package/docs/shared/react.mustache +0 -1
  92. package/docs/testcafe.md +0 -174
  93. package/docs/translation.md +0 -247
  94. package/docs/tutorial.md +0 -271
  95. package/docs/typescript.md +0 -180
  96. package/docs/ui.md +0 -59
  97. package/docs/videos.md +0 -28
  98. package/docs/visual.md +0 -202
  99. package/docs/vue.md +0 -121
  100. package/docs/webapi/amOnPage.mustache +0 -11
  101. package/docs/webapi/appendField.mustache +0 -11
  102. package/docs/webapi/attachFile.mustache +0 -12
  103. package/docs/webapi/blur.mustache +0 -18
  104. package/docs/webapi/checkOption.mustache +0 -13
  105. package/docs/webapi/clearCookie.mustache +0 -9
  106. package/docs/webapi/clearField.mustache +0 -9
  107. package/docs/webapi/click.mustache +0 -25
  108. package/docs/webapi/clickLink.mustache +0 -8
  109. package/docs/webapi/closeCurrentTab.mustache +0 -7
  110. package/docs/webapi/closeOtherTabs.mustache +0 -8
  111. package/docs/webapi/dontSee.mustache +0 -11
  112. package/docs/webapi/dontSeeCheckboxIsChecked.mustache +0 -10
  113. package/docs/webapi/dontSeeCookie.mustache +0 -8
  114. package/docs/webapi/dontSeeCurrentUrlEquals.mustache +0 -10
  115. package/docs/webapi/dontSeeElement.mustache +0 -8
  116. package/docs/webapi/dontSeeElementInDOM.mustache +0 -8
  117. package/docs/webapi/dontSeeInCurrentUrl.mustache +0 -4
  118. package/docs/webapi/dontSeeInField.mustache +0 -11
  119. package/docs/webapi/dontSeeInSource.mustache +0 -8
  120. package/docs/webapi/dontSeeInTitle.mustache +0 -8
  121. package/docs/webapi/doubleClick.mustache +0 -13
  122. package/docs/webapi/downloadFile.mustache +0 -12
  123. package/docs/webapi/dragAndDrop.mustache +0 -9
  124. package/docs/webapi/dragSlider.mustache +0 -11
  125. package/docs/webapi/executeAsyncScript.mustache +0 -24
  126. package/docs/webapi/executeScript.mustache +0 -26
  127. package/docs/webapi/fillField.mustache +0 -16
  128. package/docs/webapi/focus.mustache +0 -13
  129. package/docs/webapi/forceClick.mustache +0 -28
  130. package/docs/webapi/forceRightClick.mustache +0 -18
  131. package/docs/webapi/grabAllWindowHandles.mustache +0 -7
  132. package/docs/webapi/grabAttributeFrom.mustache +0 -10
  133. package/docs/webapi/grabAttributeFromAll.mustache +0 -9
  134. package/docs/webapi/grabBrowserLogs.mustache +0 -9
  135. package/docs/webapi/grabCookie.mustache +0 -11
  136. package/docs/webapi/grabCssPropertyFrom.mustache +0 -11
  137. package/docs/webapi/grabCssPropertyFromAll.mustache +0 -10
  138. package/docs/webapi/grabCurrentUrl.mustache +0 -9
  139. package/docs/webapi/grabCurrentWindowHandle.mustache +0 -6
  140. package/docs/webapi/grabDataFromPerformanceTiming.mustache +0 -20
  141. package/docs/webapi/grabElementBoundingRect.mustache +0 -20
  142. package/docs/webapi/grabGeoLocation.mustache +0 -8
  143. package/docs/webapi/grabHTMLFrom.mustache +0 -10
  144. package/docs/webapi/grabHTMLFromAll.mustache +0 -9
  145. package/docs/webapi/grabNumberOfOpenTabs.mustache +0 -8
  146. package/docs/webapi/grabNumberOfVisibleElements.mustache +0 -9
  147. package/docs/webapi/grabPageScrollPosition.mustache +0 -8
  148. package/docs/webapi/grabPopupText.mustache +0 -5
  149. package/docs/webapi/grabSource.mustache +0 -8
  150. package/docs/webapi/grabTextFrom.mustache +0 -10
  151. package/docs/webapi/grabTextFromAll.mustache +0 -9
  152. package/docs/webapi/grabTitle.mustache +0 -8
  153. package/docs/webapi/grabValueFrom.mustache +0 -9
  154. package/docs/webapi/grabValueFromAll.mustache +0 -8
  155. package/docs/webapi/grabWebElement.mustache +0 -9
  156. package/docs/webapi/grabWebElements.mustache +0 -9
  157. package/docs/webapi/moveCursorTo.mustache +0 -12
  158. package/docs/webapi/openNewTab.mustache +0 -7
  159. package/docs/webapi/pressKey.mustache +0 -12
  160. package/docs/webapi/pressKeyDown.mustache +0 -12
  161. package/docs/webapi/pressKeyUp.mustache +0 -12
  162. package/docs/webapi/pressKeyWithKeyNormalization.mustache +0 -60
  163. package/docs/webapi/refreshPage.mustache +0 -6
  164. package/docs/webapi/resizeWindow.mustache +0 -6
  165. package/docs/webapi/rightClick.mustache +0 -14
  166. package/docs/webapi/saveElementScreenshot.mustache +0 -10
  167. package/docs/webapi/saveScreenshot.mustache +0 -12
  168. package/docs/webapi/say.mustache +0 -10
  169. package/docs/webapi/scrollIntoView.mustache +0 -11
  170. package/docs/webapi/scrollPageToBottom.mustache +0 -6
  171. package/docs/webapi/scrollPageToTop.mustache +0 -6
  172. package/docs/webapi/scrollTo.mustache +0 -12
  173. package/docs/webapi/see.mustache +0 -11
  174. package/docs/webapi/seeAttributesOnElements.mustache +0 -9
  175. package/docs/webapi/seeCheckboxIsChecked.mustache +0 -10
  176. package/docs/webapi/seeCookie.mustache +0 -8
  177. package/docs/webapi/seeCssPropertiesOnElements.mustache +0 -9
  178. package/docs/webapi/seeCurrentUrlEquals.mustache +0 -11
  179. package/docs/webapi/seeElement.mustache +0 -8
  180. package/docs/webapi/seeElementInDOM.mustache +0 -8
  181. package/docs/webapi/seeInCurrentUrl.mustache +0 -8
  182. package/docs/webapi/seeInField.mustache +0 -12
  183. package/docs/webapi/seeInPopup.mustache +0 -8
  184. package/docs/webapi/seeInSource.mustache +0 -7
  185. package/docs/webapi/seeInTitle.mustache +0 -8
  186. package/docs/webapi/seeNumberOfElements.mustache +0 -11
  187. package/docs/webapi/seeNumberOfVisibleElements.mustache +0 -10
  188. package/docs/webapi/seeTextEquals.mustache +0 -9
  189. package/docs/webapi/seeTitleEquals.mustache +0 -8
  190. package/docs/webapi/selectOption.mustache +0 -21
  191. package/docs/webapi/setCookie.mustache +0 -16
  192. package/docs/webapi/setGeoLocation.mustache +0 -12
  193. package/docs/webapi/switchTo.mustache +0 -9
  194. package/docs/webapi/switchToNextTab.mustache +0 -10
  195. package/docs/webapi/switchToPreviousTab.mustache +0 -10
  196. package/docs/webapi/type.mustache +0 -21
  197. package/docs/webapi/uncheckOption.mustache +0 -13
  198. package/docs/webapi/wait.mustache +0 -8
  199. package/docs/webapi/waitForClickable.mustache +0 -11
  200. package/docs/webapi/waitForDetached.mustache +0 -10
  201. package/docs/webapi/waitForElement.mustache +0 -11
  202. package/docs/webapi/waitForEnabled.mustache +0 -6
  203. package/docs/webapi/waitForFunction.mustache +0 -17
  204. package/docs/webapi/waitForInvisible.mustache +0 -10
  205. package/docs/webapi/waitForText.mustache +0 -13
  206. package/docs/webapi/waitForValue.mustache +0 -10
  207. package/docs/webapi/waitForVisible.mustache +0 -10
  208. package/docs/webapi/waitInUrl.mustache +0 -9
  209. package/docs/webapi/waitNumberOfVisibleElements.mustache +0 -10
  210. package/docs/webapi/waitToHide.mustache +0 -10
  211. package/docs/webapi/waitUrlEquals.mustache +0 -10
  212. package/docs/webdriver.md +0 -655
  213. package/docs/wiki/Books-&-Posts.md +0 -27
  214. package/docs/wiki/Community-Helpers-&-Plugins.md +0 -53
  215. package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +0 -61
  216. package/docs/wiki/Examples.md +0 -145
  217. package/docs/wiki/Google-Summer-of-Code-(GSoC)-2020.md +0 -68
  218. package/docs/wiki/Home.md +0 -16
  219. package/docs/wiki/Migration-to-Appium-v2---CodeceptJS.md +0 -83
  220. package/docs/wiki/Release-Process.md +0 -24
  221. package/docs/wiki/Roadmap.md +0 -23
  222. package/docs/wiki/Tests.md +0 -1393
  223. package/docs/wiki/Upgrading-to-CodeceptJS-3.md +0 -153
  224. package/docs/wiki/Videos.md +0 -19
  225. package/lib/helper/extras/PlaywrightReact.js +0 -9
@@ -1,6 +1,7 @@
1
1
  const event = require('../event');
2
2
  const recorder = require('../recorder');
3
3
  const container = require('../container');
4
+ const { log } = require('../output');
4
5
 
5
6
  const defaultConfig = {
6
7
  retries: 3,
@@ -43,7 +44,7 @@ const defaultConfig = {
43
44
  * * `factor` - The exponential factor to use. Default is 1.5.
44
45
  * * `minTimeout` - The number of milliseconds before starting the first retry. Default is 1000.
45
46
  * * `maxTimeout` - The maximum number of milliseconds between two retries. Default is Infinity.
46
- * * `randomize` - Randomizes the timeouts by multiplying with a factor between 1 to 2. Default is false.
47
+ * * `randomize` - Randomizes the timeouts by multiplying with a factor from 1 to 2. Default is false.
47
48
  * * `defaultIgnoredSteps` - an array of steps to be ignored for retry. Includes:
48
49
  * * `amOnPage`
49
50
  * * `wait*`
@@ -99,7 +100,10 @@ module.exports = (config) => {
99
100
  config.when = when;
100
101
 
101
102
  event.dispatcher.on(event.step.started, (step) => {
102
- if (container.plugins('tryTo')) return;
103
+ if (process.env.TRY_TO === 'true') {
104
+ log('Info: RetryFailedStep plugin is disabled inside tryTo block');
105
+ return;
106
+ }
103
107
 
104
108
  // if a step is ignored - return
105
109
  for (const ignored of config.ignoredSteps) {
@@ -89,9 +89,9 @@ module.exports = function (config) {
89
89
  let err = null;
90
90
 
91
91
  return new Promise((done) => {
92
- const tryBlock = () => {
92
+ const tryBlock = async () => {
93
93
  recorder.session.start(`retryTo ${tries}`);
94
- callback(tries);
94
+ await callback(tries);
95
95
  recorder.add(() => {
96
96
  recorder.session.restore(`retryTo ${tries}`);
97
97
  done(null);
@@ -1,5 +1,4 @@
1
1
  const recorder = require('../recorder');
2
- const store = require('../store');
3
2
  const { debug } = require('../output');
4
3
 
5
4
  const defaultConfig = {
@@ -9,7 +8,7 @@ const defaultConfig = {
9
8
  /**
10
9
  *
11
10
  *
12
- * Adds global `tryTo` function inside of which all failed steps won't fail a test but will return true/false.
11
+ * Adds global `tryTo` function in which all failed steps won't fail a test but will return true/false.
13
12
  *
14
13
  * Enable this plugin in `codecept.conf.js` (enabled by default for new setups):
15
14
  *
@@ -47,7 +46,7 @@ const defaultConfig = {
47
46
  * ```js
48
47
  * const assert = require('assert');
49
48
  * ```
50
- * Then use the assert:
49
+ * Then use the assertion:
51
50
  * const result1 = await tryTo(() => I.see('Hello, user'));
52
51
  * const result2 = await tryTo(() => I.seeElement('.welcome'));
53
52
  * assert.ok(result1 && result2, 'Assertions were not succesful');
@@ -70,7 +69,7 @@ const defaultConfig = {
70
69
  * const tryTo = codeceptjs.container.plugins('tryTo');
71
70
  * ```
72
71
  *
73
- */
72
+ */
74
73
  module.exports = function (config) {
75
74
  config = Object.assign(defaultConfig, config);
76
75
 
@@ -84,6 +83,7 @@ function tryTo(callback) {
84
83
  let result = false;
85
84
  return recorder.add('tryTo', () => {
86
85
  recorder.session.start('tryTo');
86
+ process.env.TRY_TO = 'true';
87
87
  callback();
88
88
  recorder.add(() => {
89
89
  result = true;
@@ -98,6 +98,7 @@ function tryTo(callback) {
98
98
  return result;
99
99
  });
100
100
  return recorder.add('result', () => {
101
+ process.env.TRY_TO = undefined;
101
102
  return result;
102
103
  }, true, false);
103
104
  }, false, false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeceptjs",
3
- "version": "3.5.10",
3
+ "version": "3.5.12-beta.1",
4
4
  "description": "Supercharged End 2 End Testing Framework for NodeJS",
5
5
  "keywords": [
6
6
  "acceptance",
@@ -23,7 +23,6 @@
23
23
  },
24
24
  "files": [
25
25
  "bin",
26
- "docs",
27
26
  "lib",
28
27
  "translations",
29
28
  "typings/**/*.d.ts"
@@ -52,8 +51,11 @@
52
51
  "test:unit:webbapi:playwright": "mocha test/helper/Playwright_test.js",
53
52
  "test:unit:webbapi:puppeteer": "mocha test/helper/Puppeteer_test.js",
54
53
  "test:unit:webbapi:webDriver": "mocha test/helper/WebDriver_test.js",
54
+ "test:unit:webbapi:webDriver:noSeleniumServer": "mocha test/helper/WebDriver.noSeleniumServer_test.js",
55
+ "test:unit:webbapi:webDriver:devtools": "mocha test/helper/WebDriver_devtools_test.js --exit",
55
56
  "test:unit:webbapi:testCafe": "mocha test/helper/TestCafe_test.js",
56
57
  "test:unit:expect": "mocha test/helper/Expect_test.js",
58
+ "test:plugin": "mocha test/plugin/plugin_test.js",
57
59
  "def": "./runok.js def",
58
60
  "dev:graphql": "node test/data/graphql/index.js",
59
61
  "publish:site": "./runok.js publish:site",
@@ -65,13 +67,13 @@
65
67
  "dependencies": {
66
68
  "@codeceptjs/configure": "0.10.0",
67
69
  "@codeceptjs/helper": "2.0.1",
68
- "@cucumber/cucumber-expressions": "16",
70
+ "@cucumber/cucumber-expressions": "17",
69
71
  "@cucumber/gherkin": "26",
70
- "@cucumber/messages": "22.0.0",
72
+ "@cucumber/messages": "24.0.1",
71
73
  "@xmldom/xmldom": "0.8.10",
72
74
  "acorn": "8.11.2",
73
75
  "arrify": "2.0.1",
74
- "axios": "1.6.2",
76
+ "axios": "1.6.3",
75
77
  "chai": "4.3.8",
76
78
  "chai-deep-match": "1.2.1",
77
79
  "chai-exclude": "^2.1.0",
@@ -81,8 +83,9 @@
81
83
  "chai-string": "^1.5.0",
82
84
  "chalk": "4.1.2",
83
85
  "commander": "11.1.0",
84
- "convert-cssxpath": "1.0.2",
85
86
  "cross-spawn": "7.0.3",
87
+ "csstoxpath": "1.6.0",
88
+ "devtools": "8.27.2",
86
89
  "envinfo": "7.11.0",
87
90
  "escape-string-regexp": "4.0.0",
88
91
  "figures": "3.2.0",
@@ -103,7 +106,7 @@
103
106
  "parse-function": "5.6.4",
104
107
  "parse5": "7.1.2",
105
108
  "promise-retry": "1.1.1",
106
- "resq": "1.10.2",
109
+ "resq": "1.11.0",
107
110
  "sprintf-js": "1.1.1",
108
111
  "uuid": "9.0"
109
112
  },
@@ -117,20 +120,21 @@
117
120
  "@pollyjs/core": "5.1.0",
118
121
  "@types/chai": "^4.3.7",
119
122
  "@types/inquirer": "9.0.3",
120
- "@types/node": "20.4.4",
121
- "@wdio/sauce-service": "8.3.8",
123
+ "@types/node": "20.10.7",
124
+ "@wdio/sauce-service": "8.27.0",
122
125
  "@wdio/selenium-standalone-service": "8.3.2",
123
- "@wdio/utils": "8.20.3",
126
+ "@wdio/utils": "8.27.2",
127
+ "@xmldom/xmldom": "0.8.10",
124
128
  "apollo-server-express": "2.25.3",
125
129
  "chai-as-promised": "7.1.1",
126
130
  "chai-subset": "1.6.0",
127
131
  "contributor-faces": "1.1.0",
128
132
  "documentation": "12.3.0",
129
133
  "dtslint": "4.2.1",
130
- "electron": "27.0.4",
131
- "eslint": "8.55.0",
134
+ "electron": "28.0.0",
135
+ "eslint": "8.56.0",
132
136
  "eslint-config-airbnb-base": "15.0.0",
133
- "eslint-plugin-import": "2.29.0",
137
+ "eslint-plugin-import": "2.29.1",
134
138
  "eslint-plugin-mocha": "6.3.0",
135
139
  "expect": "29.7.0",
136
140
  "express": "4.18.2",
@@ -143,22 +147,21 @@
143
147
  "playwright": "1.40.1",
144
148
  "puppeteer": "21.1.1",
145
149
  "qrcode-terminal": "0.12.0",
146
- "rosie": "2.1.0",
150
+ "rosie": "2.1.1",
147
151
  "runok": "0.9.3",
148
152
  "sinon": "17.0.1",
149
153
  "sinon-chai": "3.7.0",
150
154
  "testcafe": "3.3.0",
151
- "ts-morph": "19.0.0",
152
- "ts-node": "10.9.1",
155
+ "ts-morph": "21.0.1",
156
+ "ts-node": "10.9.2",
153
157
  "tsd-jsdoc": "2.5.0",
154
- "typedoc": "0.25.3",
155
- "typedoc-plugin-markdown": "3.13.4",
156
- "typescript": "5.2.2",
158
+ "typedoc": "0.25.7",
159
+ "typedoc-plugin-markdown": "3.17.1",
160
+ "typescript": "5.3.3",
157
161
  "wdio-docker-service": "1.5.0",
158
- "webdriverio": "8.3.8",
162
+ "webdriverio": "8.27.2",
159
163
  "xml2js": "0.6.2",
160
- "@xmldom/xmldom": "0.7.7",
161
- "xpath": "0.0.33"
164
+ "xpath": "0.0.34"
162
165
  },
163
166
  "engines": {
164
167
  "node": ">=16.0",
@@ -97,7 +97,7 @@ declare namespace CodeceptJS {
97
97
  * }
98
98
  * }
99
99
  * ```
100
- */
100
+ */
101
101
  helpers?: {
102
102
  /**
103
103
  * Run web tests controlling browsers via Playwright engine.
@@ -289,7 +289,7 @@ declare namespace CodeceptJS {
289
289
  * ```js
290
290
  * bootstrap: 'bootstrap.js',
291
291
  * ```
292
- */
292
+ */
293
293
  bootstrap?: (() => Promise<void>) | boolean | string;
294
294
  /**
295
295
  * [Execute code after tests](https://codecept.io/bootstrap/) finished.
@@ -303,7 +303,7 @@ declare namespace CodeceptJS {
303
303
  * ```js
304
304
  * teardown: 'teardown.js',
305
305
  * ```
306
- */
306
+ */
307
307
  teardown?: (() => Promise<void>) | boolean | string;
308
308
  /**
309
309
  * [Execute code before launching tests in parallel mode](https://codecept.io/bootstrap/#bootstrapall-teardownall)
@@ -312,7 +312,7 @@ declare namespace CodeceptJS {
312
312
  bootstrapAll?: (() => Promise<void>) | boolean | string;
313
313
  /**
314
314
  * [Execute JS code after finishing tests in parallel mode](https://codecept.io/bootstrap/#bootstrapall-teardownall)
315
- */
315
+ */
316
316
  teardownAll?: (() => Promise<void>) | boolean | string;
317
317
 
318
318
  /** Enable [localized test commands](https://codecept.io/translation/) */
@@ -328,7 +328,7 @@ declare namespace CodeceptJS {
328
328
  * ```
329
329
  * require: ["should"]
330
330
  * ```
331
- */
331
+ */
332
332
  require?: Array<string>;
333
333
 
334
334
  /**
@@ -423,14 +423,17 @@ declare namespace CodeceptJS {
423
423
  | { ios: string }
424
424
  | { android: string; ios: string }
425
425
  | { react: string }
426
+ | { vue: string }
426
427
  | { shadow: string[] }
427
428
  | { custom: string };
428
429
 
429
430
  interface CustomLocators {}
431
+ interface OtherLocators { props?: object }
430
432
  type LocatorOrString =
431
433
  | string
432
434
  | ILocator
433
435
  | Locator
436
+ | OtherLocators
434
437
  | CustomLocators[keyof CustomLocators];
435
438
 
436
439
  type StringOrSecret = string | CodeceptJS.Secret;