codeceptjs 4.0.0-beta.4 → 4.0.0-beta.6.esm-aria

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 (188) hide show
  1. package/README.md +89 -119
  2. package/bin/codecept.js +53 -54
  3. package/docs/webapi/clearCookie.mustache +1 -1
  4. package/lib/actor.js +70 -102
  5. package/lib/ai.js +131 -121
  6. package/lib/assert/empty.js +11 -12
  7. package/lib/assert/equal.js +16 -21
  8. package/lib/assert/error.js +2 -2
  9. package/lib/assert/include.js +11 -15
  10. package/lib/assert/throws.js +3 -5
  11. package/lib/assert/truth.js +10 -7
  12. package/lib/assert.js +18 -18
  13. package/lib/codecept.js +112 -101
  14. package/lib/colorUtils.js +48 -50
  15. package/lib/command/check.js +206 -0
  16. package/lib/command/configMigrate.js +13 -14
  17. package/lib/command/definitions.js +24 -36
  18. package/lib/command/dryRun.js +16 -16
  19. package/lib/command/generate.js +38 -39
  20. package/lib/command/gherkin/init.js +36 -38
  21. package/lib/command/gherkin/snippets.js +76 -74
  22. package/lib/command/gherkin/steps.js +21 -18
  23. package/lib/command/info.js +49 -15
  24. package/lib/command/init.js +41 -37
  25. package/lib/command/interactive.js +22 -13
  26. package/lib/command/list.js +11 -10
  27. package/lib/command/run-multiple/chunk.js +50 -47
  28. package/lib/command/run-multiple/collection.js +5 -5
  29. package/lib/command/run-multiple/run.js +3 -3
  30. package/lib/command/run-multiple.js +27 -47
  31. package/lib/command/run-rerun.js +6 -7
  32. package/lib/command/run-workers.js +15 -66
  33. package/lib/command/run.js +8 -8
  34. package/lib/command/utils.js +22 -21
  35. package/lib/command/workers/runTests.js +131 -241
  36. package/lib/config.js +111 -49
  37. package/lib/container.js +589 -244
  38. package/lib/data/context.js +16 -18
  39. package/lib/data/dataScenarioConfig.js +9 -9
  40. package/lib/data/dataTableArgument.js +7 -7
  41. package/lib/data/table.js +6 -12
  42. package/lib/effects.js +307 -0
  43. package/lib/els.js +160 -0
  44. package/lib/event.js +24 -19
  45. package/lib/globals.js +141 -0
  46. package/lib/heal.js +89 -81
  47. package/lib/helper/AI.js +3 -2
  48. package/lib/helper/ApiDataFactory.js +19 -19
  49. package/lib/helper/Appium.js +47 -51
  50. package/lib/helper/FileSystem.js +35 -15
  51. package/lib/helper/GraphQL.js +1 -1
  52. package/lib/helper/GraphQLDataFactory.js +4 -4
  53. package/lib/helper/JSONResponse.js +72 -45
  54. package/lib/helper/Mochawesome.js +14 -11
  55. package/lib/helper/Playwright.js +832 -434
  56. package/lib/helper/Puppeteer.js +393 -292
  57. package/lib/helper/REST.js +32 -27
  58. package/lib/helper/WebDriver.js +320 -219
  59. package/lib/helper/errors/ConnectionRefused.js +6 -6
  60. package/lib/helper/errors/ElementAssertion.js +11 -16
  61. package/lib/helper/errors/ElementNotFound.js +5 -9
  62. package/lib/helper/errors/RemoteBrowserConnectionRefused.js +5 -5
  63. package/lib/helper/extras/Console.js +11 -11
  64. package/lib/helper/extras/PlaywrightLocator.js +110 -0
  65. package/lib/helper/extras/PlaywrightPropEngine.js +18 -18
  66. package/lib/helper/extras/PlaywrightRestartOpts.js +23 -23
  67. package/lib/helper/extras/Popup.js +22 -22
  68. package/lib/helper/extras/React.js +29 -30
  69. package/lib/helper/network/actions.js +33 -48
  70. package/lib/helper/network/utils.js +76 -83
  71. package/lib/helper/scripts/blurElement.js +6 -6
  72. package/lib/helper/scripts/focusElement.js +6 -6
  73. package/lib/helper/scripts/highlightElement.js +9 -9
  74. package/lib/helper/scripts/isElementClickable.js +34 -34
  75. package/lib/helper.js +2 -1
  76. package/lib/history.js +23 -20
  77. package/lib/hooks.js +10 -10
  78. package/lib/html.js +90 -100
  79. package/lib/index.js +48 -21
  80. package/lib/listener/config.js +8 -9
  81. package/lib/listener/emptyRun.js +54 -0
  82. package/lib/listener/exit.js +10 -12
  83. package/lib/listener/{retry.js → globalRetry.js} +10 -10
  84. package/lib/listener/globalTimeout.js +166 -0
  85. package/lib/listener/helpers.js +43 -24
  86. package/lib/listener/mocha.js +4 -5
  87. package/lib/listener/result.js +11 -0
  88. package/lib/listener/steps.js +26 -23
  89. package/lib/listener/store.js +20 -0
  90. package/lib/locator.js +213 -192
  91. package/lib/mocha/asyncWrapper.js +264 -0
  92. package/lib/mocha/bdd.js +167 -0
  93. package/lib/mocha/cli.js +341 -0
  94. package/lib/mocha/factory.js +160 -0
  95. package/lib/{interfaces → mocha}/featureConfig.js +33 -13
  96. package/lib/{interfaces → mocha}/gherkin.js +75 -45
  97. package/lib/mocha/hooks.js +121 -0
  98. package/lib/mocha/index.js +21 -0
  99. package/lib/mocha/inject.js +46 -0
  100. package/lib/{interfaces → mocha}/scenarioConfig.js +32 -8
  101. package/lib/mocha/suite.js +89 -0
  102. package/lib/mocha/test.js +178 -0
  103. package/lib/mocha/types.d.ts +42 -0
  104. package/lib/mocha/ui.js +229 -0
  105. package/lib/output.js +86 -64
  106. package/lib/parser.js +44 -44
  107. package/lib/pause.js +160 -139
  108. package/lib/plugin/analyze.js +403 -0
  109. package/lib/plugin/{autoLogin.js → auth.js} +137 -43
  110. package/lib/plugin/autoDelay.js +19 -15
  111. package/lib/plugin/coverage.js +22 -27
  112. package/lib/plugin/customLocator.js +5 -5
  113. package/lib/plugin/customReporter.js +53 -0
  114. package/lib/plugin/heal.js +49 -17
  115. package/lib/plugin/pageInfo.js +140 -0
  116. package/lib/plugin/pauseOnFail.js +4 -3
  117. package/lib/plugin/retryFailedStep.js +60 -19
  118. package/lib/plugin/screenshotOnFail.js +80 -83
  119. package/lib/plugin/stepByStepReport.js +70 -31
  120. package/lib/plugin/stepTimeout.js +7 -13
  121. package/lib/plugin/subtitles.js +10 -9
  122. package/lib/recorder.js +167 -126
  123. package/lib/rerun.js +94 -50
  124. package/lib/result.js +161 -0
  125. package/lib/secret.js +18 -17
  126. package/lib/session.js +95 -89
  127. package/lib/step/base.js +239 -0
  128. package/lib/step/comment.js +10 -0
  129. package/lib/step/config.js +50 -0
  130. package/lib/step/func.js +46 -0
  131. package/lib/step/helper.js +50 -0
  132. package/lib/step/meta.js +99 -0
  133. package/lib/step/record.js +74 -0
  134. package/lib/step/retry.js +11 -0
  135. package/lib/step/section.js +55 -0
  136. package/lib/step.js +18 -332
  137. package/lib/steps.js +54 -0
  138. package/lib/store.js +37 -5
  139. package/lib/template/heal.js +2 -11
  140. package/lib/timeout.js +60 -0
  141. package/lib/transform.js +8 -8
  142. package/lib/translation.js +32 -18
  143. package/lib/utils.js +354 -250
  144. package/lib/workerStorage.js +16 -16
  145. package/lib/workers.js +366 -282
  146. package/package.json +107 -95
  147. package/translations/de-DE.js +5 -4
  148. package/translations/fr-FR.js +5 -4
  149. package/translations/index.js +23 -9
  150. package/translations/it-IT.js +5 -4
  151. package/translations/ja-JP.js +5 -4
  152. package/translations/nl-NL.js +76 -0
  153. package/translations/pl-PL.js +5 -4
  154. package/translations/pt-BR.js +5 -4
  155. package/translations/ru-RU.js +5 -4
  156. package/translations/utils.js +18 -0
  157. package/translations/zh-CN.js +5 -4
  158. package/translations/zh-TW.js +5 -4
  159. package/typings/index.d.ts +177 -186
  160. package/typings/promiseBasedTypes.d.ts +3573 -5941
  161. package/typings/types.d.ts +4042 -6370
  162. package/lib/cli.js +0 -256
  163. package/lib/helper/ExpectHelper.js +0 -391
  164. package/lib/helper/Nightmare.js +0 -1504
  165. package/lib/helper/Protractor.js +0 -1863
  166. package/lib/helper/SoftExpectHelper.js +0 -381
  167. package/lib/helper/TestCafe.js +0 -1414
  168. package/lib/helper/clientscripts/nightmare.js +0 -213
  169. package/lib/helper/extras/PlaywrightReactVueLocator.js +0 -43
  170. package/lib/helper/testcafe/testControllerHolder.js +0 -42
  171. package/lib/helper/testcafe/testcafe-utils.js +0 -62
  172. package/lib/interfaces/bdd.js +0 -81
  173. package/lib/listener/artifacts.js +0 -19
  174. package/lib/listener/timeout.js +0 -109
  175. package/lib/mochaFactory.js +0 -113
  176. package/lib/plugin/allure.js +0 -15
  177. package/lib/plugin/commentStep.js +0 -136
  178. package/lib/plugin/debugErrors.js +0 -67
  179. package/lib/plugin/eachElement.js +0 -127
  180. package/lib/plugin/fakerTransform.js +0 -49
  181. package/lib/plugin/retryTo.js +0 -127
  182. package/lib/plugin/selenoid.js +0 -384
  183. package/lib/plugin/standardActingHelpers.js +0 -3
  184. package/lib/plugin/tryTo.js +0 -115
  185. package/lib/plugin/wdio.js +0 -249
  186. package/lib/scenario.js +0 -224
  187. package/lib/ui.js +0 -236
  188. package/lib/within.js +0 -70
@@ -1,5 +1,6 @@
1
1
  // Project: https://github.com/codeception/codeceptjs/
2
2
  /// <reference path="./types.d.ts" />
3
+ /// <reference path="../lib/mocha/types.d.ts" />
3
4
  /// <reference path="./promiseBasedTypes.d.ts" />
4
5
  /// <reference types="webdriverio" />
5
6
  /// <reference path="./Mocha.d.ts" />
@@ -9,76 +10,75 @@
9
10
  declare namespace CodeceptJS {
10
11
  type WithTranslation<T> = T &
11
12
  // @ts-ignore
12
- import("./utils").Translate<T, Translation.Actions>;
13
+ import('./utils').Translate<T, Translation.Actions>
13
14
 
14
15
  type Cookie = {
15
- name: string;
16
- value: string | boolean;
17
- domain?: string,
18
- path?: string,
19
- };
16
+ name: string
17
+ value: string | boolean
18
+ domain?: string
19
+ path?: string
20
+ }
20
21
 
21
22
  type RetryConfig = {
22
23
  /** Filter tests by string or regexp pattern */
23
- grep?: string | RegExp;
24
+ grep?: string | RegExp
24
25
  /** Number of times to repeat scenarios of a Feature */
25
- Feature?: number;
26
+ Feature?: number
26
27
  /** Number of times to repeat scenarios */
27
- Scenario?: number;
28
+ Scenario?: number
28
29
  /** Number of times to repeat Before hook */
29
- Before?: number;
30
+ Before?: number
30
31
  /** Number of times to repeat After hook */
31
- After?: number;
32
+ After?: number
32
33
  /** Number of times to repeat BeforeSuite hook */
33
- BeforeSuite?: number;
34
+ BeforeSuite?: number
34
35
  /** Number of times to repeat AfterSuite hook */
35
- AfterSuite?: number;
36
- };
36
+ AfterSuite?: number
37
+ }
37
38
 
38
39
  type TimeoutConfig = {
39
40
  /** Filter tests by string or regexp pattern */
40
- grep: string | RegExp;
41
+ grep: string | RegExp
41
42
  /** Set timeout for a scenarios of a Feature */
42
- Feature: number;
43
+ Feature: number
43
44
  /** Set timeout for scenarios */
44
- Scenario: number;
45
- };
45
+ Scenario: number
46
+ }
46
47
 
47
48
  type AiPrompt = {
48
- role: string;
49
- content: string;
49
+ role: string
50
+ content: string
50
51
  }
51
52
 
52
53
  type AiConfig = {
53
54
  /** request function to send prompts to AI provider */
54
- request: (messages: any) => Promise<string>,
55
+ request: (messages: any) => Promise<string>
55
56
 
56
57
  /** custom prompts */
57
58
  prompts?: {
58
59
  /** Returns prompt to write CodeceptJS steps inside pause mode */
59
- writeStep?: (html: string, input: string) => Array<AiPrompt>;
60
+ writeStep?: (html: string, input: string) => Array<AiPrompt>
60
61
  /** Returns prompt to heal step when test fails on CI if healing is on */
61
- healStep?: (html: string, object) => Array<AiPrompt>;
62
+ healStep?: (html: string, object) => Array<AiPrompt>
62
63
  /** Returns prompt to generate page object inside pause mode */
63
- generatePageObject?: (html: string, extraPrompt?: string, rootLocator?: string) => Array<AiPrompt>;
64
- },
64
+ generatePageObject?: (html: string, extraPrompt?: string, rootLocator?: string) => Array<AiPrompt>
65
+ }
65
66
 
66
67
  /** max tokens to use */
67
- maxTokens?: number,
68
-
68
+ maxTokens?: number
69
69
 
70
70
  /** configuration for processing HTML for GPT */
71
71
  html?: {
72
72
  /** max size of HTML to be sent to OpenAI to avoid token limit */
73
- maxLength?: number,
73
+ maxLength?: number
74
74
  /** should HTML be changed by removing non-interactive elements */
75
- simplify?: boolean,
75
+ simplify?: boolean
76
76
  /** should HTML be minified before sending */
77
- minify?: boolean,
78
- interactiveElements?: Array<string>,
79
- textElements?: Array<string>,
80
- allowedAttrs?: Array<string>,
81
- allowedRoles?: Array<string>,
77
+ minify?: boolean
78
+ interactiveElements?: Array<string>
79
+ textElements?: Array<string>
80
+ allowedAttrs?: Array<string>
81
+ allowedRoles?: Array<string>
82
82
  }
83
83
  }
84
84
 
@@ -97,7 +97,7 @@ declare namespace CodeceptJS {
97
97
  * tests: 'tests/**.test.ts'
98
98
  * ```
99
99
  */
100
- tests: string;
100
+ tests: string
101
101
  /**
102
102
  * Where to store failure screenshots, artifacts, etc
103
103
  *
@@ -105,7 +105,7 @@ declare namespace CodeceptJS {
105
105
  * output: './output'
106
106
  * ```
107
107
  */
108
- output: string;
108
+ output: string
109
109
  /**
110
110
  * empty output folder for next run
111
111
  *
@@ -113,7 +113,7 @@ declare namespace CodeceptJS {
113
113
  * emptyOutputFolder: true
114
114
  * ```
115
115
  */
116
- emptyOutputFolder?: boolean;
116
+ emptyOutputFolder?: boolean
117
117
  /**
118
118
  * mask sensitive data in output logs
119
119
  *
@@ -121,7 +121,7 @@ declare namespace CodeceptJS {
121
121
  * maskSensitiveData: true
122
122
  * ```
123
123
  */
124
- maskSensitiveData?: boolean;
124
+ maskSensitiveData?: boolean
125
125
  /**
126
126
  * Pattern to filter tests by name.
127
127
  * This option is useful if you plan to use multiple configs for different environments.
@@ -132,7 +132,7 @@ declare namespace CodeceptJS {
132
132
  * grep: '@firefox'
133
133
  * ```
134
134
  */
135
- grep?: string;
135
+ grep?: string
136
136
  /**
137
137
  * Enable and configure helpers:
138
138
  *
@@ -158,7 +158,7 @@ declare namespace CodeceptJS {
158
158
  * I.see('Welcome');
159
159
  * ```
160
160
  */
161
- Playwright?: PlaywrightConfig;
161
+ Playwright?: PlaywrightConfig
162
162
  /**
163
163
  * Run web tests controlling browsers via Puppeteer engine.
164
164
  *
@@ -171,7 +171,7 @@ declare namespace CodeceptJS {
171
171
  * I.see('Welcome');
172
172
  * ```
173
173
  */
174
- Puppeteer?: PuppeteerConfig;
174
+ Puppeteer?: PuppeteerConfig
175
175
 
176
176
  /**
177
177
  * Run web tests controlling browsers via WebDriver engine.
@@ -185,7 +185,7 @@ declare namespace CodeceptJS {
185
185
  *
186
186
  * https://codecept.io/helpers/webdriver
187
187
  */
188
- WebDriver?: WebDriverConfig;
188
+ WebDriver?: WebDriverConfig
189
189
  /**
190
190
  * Execute REST API requests for API testing or to assist web testing.
191
191
  *
@@ -196,7 +196,7 @@ declare namespace CodeceptJS {
196
196
  * I.sendGetRequest('/');
197
197
  * ```
198
198
  */
199
- REST?: RESTConfig;
199
+ REST?: RESTConfig
200
200
 
201
201
  /**
202
202
  * Use JSON assertions for API testing.
@@ -209,13 +209,13 @@ declare namespace CodeceptJS {
209
209
  * I.seeResponseContainsJson({ user: { email: 'jon@doe.com' } });
210
210
  * ```
211
211
  */
212
- JSONResponse?: any;
212
+ JSONResponse?: any
213
213
 
214
214
  /** Enable AI features for development purposes */
215
- AI?: any;
215
+ AI?: any
216
216
 
217
- [key: string]: any;
218
- },
217
+ [key: string]: any
218
+ }
219
219
  /**
220
220
  * Enable CodeceptJS plugins.
221
221
  *
@@ -233,7 +233,7 @@ declare namespace CodeceptJS {
233
233
  }
234
234
  * ```
235
235
  */
236
- plugins?: any;
236
+ plugins?: any
237
237
  /**
238
238
  * Include page objects to access them via dependency injection
239
239
  *
@@ -248,7 +248,7 @@ declare namespace CodeceptJS {
248
248
  * Scenario('test', { I, loginPage, User })
249
249
  * ```
250
250
  */
251
- include?: any;
251
+ include?: any
252
252
  /**
253
253
  * Set default tests timeout in seconds.
254
254
  * Tests will be killed on no response after timeout.
@@ -269,7 +269,7 @@ declare namespace CodeceptJS {
269
269
  * ]
270
270
  * ```
271
271
  */
272
- timeout?: number | Array<TimeoutConfig> | TimeoutConfig;
272
+ timeout?: number | Array<TimeoutConfig> | TimeoutConfig
273
273
 
274
274
  /**
275
275
  * Configure retry strategy for tests
@@ -304,11 +304,10 @@ declare namespace CodeceptJS {
304
304
  * ]
305
305
  * ```
306
306
  */
307
- retry?: number | Array<RetryConfig> | RetryConfig;
308
-
307
+ retry?: number | Array<RetryConfig> | RetryConfig
309
308
 
310
309
  /** Disable registering global functions (Before, Scenario, etc). Not recommended */
311
- noGlobals?: boolean;
310
+ noGlobals?: boolean
312
311
  /**
313
312
  * [Mocha test runner options](https://mochajs.org/#configuring-mocha-nodejs), additional [reporters](https://codecept.io/reports/#xml) can be configured here.
314
313
  *
@@ -326,7 +325,7 @@ declare namespace CodeceptJS {
326
325
  * }
327
326
  * ```
328
327
  */
329
- mocha?: any;
328
+ mocha?: any
330
329
  /**
331
330
  * [Execute code before](https://codecept.io/bootstrap/) tests are run.
332
331
  *
@@ -340,7 +339,7 @@ declare namespace CodeceptJS {
340
339
  * bootstrap: 'bootstrap.js',
341
340
  * ```
342
341
  */
343
- bootstrap?: (() => Promise<void>) | boolean | string;
342
+ bootstrap?: (() => Promise<void>) | boolean | string
344
343
  /**
345
344
  * [Execute code after tests](https://codecept.io/bootstrap/) finished.
346
345
  *
@@ -354,22 +353,22 @@ declare namespace CodeceptJS {
354
353
  * teardown: 'teardown.js',
355
354
  * ```
356
355
  */
357
- teardown?: (() => Promise<void>) | boolean | string;
356
+ teardown?: (() => Promise<void>) | boolean | string
358
357
  /**
359
358
  * [Execute code before launching tests in parallel mode](https://codecept.io/bootstrap/#bootstrapall-teardownall)
360
359
  *
361
360
  */
362
- bootstrapAll?: (() => Promise<void>) | boolean | string;
361
+ bootstrapAll?: (() => Promise<void>) | boolean | string
363
362
  /**
364
363
  * [Execute JS code after finishing tests in parallel mode](https://codecept.io/bootstrap/#bootstrapall-teardownall)
365
364
  */
366
- teardownAll?: (() => Promise<void>) | boolean | string;
365
+ teardownAll?: (() => Promise<void>) | boolean | string
367
366
 
368
367
  /** Enable [localized test commands](https://codecept.io/translation/) */
369
- translation?: string;
368
+ translation?: string
370
369
 
371
370
  /** Additional vocabularies for [localication](https://codecept.io/translation/) */
372
- vocabularies?: Array<string>;
371
+ vocabularies?: Array<string>
373
372
 
374
373
  /**
375
374
  * [Require additional JS modules](https://codecept.io/configuration/#require)
@@ -379,7 +378,7 @@ declare namespace CodeceptJS {
379
378
  * require: ["should"]
380
379
  * ```
381
380
  */
382
- require?: Array<string>;
381
+ require?: Array<string>
383
382
 
384
383
  /**
385
384
  * Enable [BDD features](https://codecept.io/bdd/#configuration).
@@ -394,45 +393,45 @@ declare namespace CodeceptJS {
394
393
  */
395
394
  gherkin?: {
396
395
  /** load feature files by pattern. Multiple patterns can be specified as array */
397
- features: string | Array<string>,
396
+ features: string | Array<string>
398
397
  /** load step definitions from JS files */
399
398
  steps: string | Array<string>
400
- };
399
+ }
401
400
 
402
401
  /**
403
402
  * [AI](https://codecept.io/ai/) features configuration.
404
403
  */
405
- ai?: AiConfig,
404
+ ai?: AiConfig
406
405
 
407
406
  /**
408
407
  * Enable full promise-based helper methods for [TypeScript](https://codecept.io/typescript/) project.
409
408
  * If true, all helper methods are typed as asynchronous;
410
409
  * Otherwise, it remains as it works in versions prior to 3.3.6
411
410
  */
412
- fullPromiseBased?: boolean;
411
+ fullPromiseBased?: boolean
413
412
 
414
- [key: string]: any;
415
- };
413
+ [key: string]: any
414
+ }
416
415
 
417
416
  type MockRequest = {
418
- method: 'GET'|'PUT'|'POST'|'PATCH'|'DELETE'|string;
419
- path: string;
420
- queryParams?: object;
417
+ method: 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE' | string
418
+ path: string
419
+ queryParams?: object
421
420
  }
422
421
 
423
422
  type MockResponse = {
424
- status: number;
425
- body?: object;
423
+ status: number
424
+ body?: object
426
425
  }
427
426
 
428
427
  type MockInteraction = {
429
- request: MockRequest;
430
- response: MockResponse;
428
+ request: MockRequest
429
+ response: MockResponse
431
430
  }
432
431
 
433
432
  interface PageScrollPosition {
434
- x: number;
435
- y: number;
433
+ x: number
434
+ y: number
436
435
  }
437
436
 
438
437
  // Could get extended by user generated typings
@@ -441,25 +440,20 @@ declare namespace CodeceptJS {
441
440
  interface IHook {}
442
441
  interface IScenario {}
443
442
  interface IFeature {
444
- (title: string): FeatureConfig;
443
+ (title: string): FeatureConfig
445
444
  }
446
445
  interface CallbackOrder extends Array<any> {}
447
446
  interface SupportObject {
448
- I: CodeceptJS.I;
447
+ I: CodeceptJS.I
449
448
  }
450
449
  namespace Translation {
451
450
  interface Actions {}
452
451
  }
453
452
 
454
453
  // Extending JSDoc generated typings
455
- interface Step {
456
- isMetaStep(): this is MetaStep;
457
- }
458
454
 
459
455
  // Types who are not be defined by JSDoc
460
- type actor = <T extends { [action: string]: (...args: any[]) => void }>(
461
- customSteps?: T & ThisType<WithTranslation<Methods & T>>
462
- ) => WithTranslation<Methods & T>;
456
+ type actor = <T extends { [action: string]: (...args: any[]) => void }>(customSteps?: T & ThisType<WithTranslation<Methods & T>>) => WithTranslation<Methods & T>
463
457
 
464
458
  type ILocator =
465
459
  | { id: string }
@@ -474,49 +468,42 @@ declare namespace CodeceptJS {
474
468
  | { vue: string }
475
469
  | { shadow: string[] }
476
470
  | { custom: string }
477
- | { pw: string };
471
+ | { pw: string }
478
472
  interface CustomLocators {}
479
- interface OtherLocators { props?: object }
480
- type LocatorOrString =
481
- | string
482
- | ILocator
483
- | Locator
484
- | OtherLocators
485
- | CustomLocators[keyof CustomLocators];
473
+ interface OtherLocators {
474
+ props?: object
475
+ }
476
+ type LocatorOrString = string | ILocator | Locator | OtherLocators | CustomLocators[keyof CustomLocators]
486
477
 
487
- type StringOrSecret = string | CodeceptJS.Secret;
478
+ type StringOrSecret = string | CodeceptJS.Secret
488
479
 
489
480
  interface HookCallback {
490
- (args: SupportObject): void | Promise<void>;
481
+ (args: SupportObject): void | Promise<void>
491
482
  }
492
483
  interface Scenario extends IScenario {
493
- only: IScenario;
494
- skip: IScenario;
495
- todo: IScenario;
484
+ only: IScenario
485
+ skip: IScenario
486
+ todo: IScenario
496
487
  }
497
488
  interface Feature extends IFeature {
498
- skip: IFeature;
489
+ skip: IFeature
499
490
  }
500
491
  interface IData {
501
- Scenario: IScenario;
502
- only: { Scenario: IScenario };
492
+ Scenario: IScenario
493
+ only: { Scenario: IScenario }
503
494
  }
504
495
 
505
496
  interface IScenario {
506
497
  // Scenario.todo can be called only with a title.
507
- (title: string, callback?: HookCallback): ScenarioConfig;
508
- (
509
- title: string,
510
- opts: { [key: string]: any },
511
- callback: HookCallback
512
- ): ScenarioConfig;
498
+ (title: string, callback?: HookCallback): ScenarioConfig
499
+ (title: string, opts: { [key: string]: any }, callback: HookCallback): ScenarioConfig
513
500
  }
514
501
  interface IHook {
515
- (callback: HookCallback): void;
502
+ (callback: HookCallback): HookConfig
516
503
  }
517
504
 
518
505
  interface Globals {
519
- codeceptjs: typeof codeceptjs;
506
+ codeceptjs: typeof codeceptjs
520
507
  }
521
508
 
522
509
  interface IParameterTypeDefinition<T> {
@@ -526,122 +513,126 @@ declare namespace CodeceptJS {
526
513
  useForSnippets?: boolean
527
514
  preferForRegexpMatch?: boolean
528
515
  }
516
+
517
+ interface HookConfig {
518
+ retry(retries?: number): HookConfig
519
+ }
520
+
521
+ function addStep(step: string, fn: Function): Promise<void>
529
522
  }
530
523
 
531
524
  // Globals
532
- declare const codecept_dir: string;
533
- declare const output_dir: string;
534
- declare function tryTo(...fn): Promise<boolean>;
535
- declare function retryTo(...fn): Promise<null>;
536
-
537
- declare const actor: CodeceptJS.actor;
538
- declare const codecept_actor: CodeceptJS.actor;
539
- declare const Helper: typeof CodeceptJS.Helper;
540
- declare const codecept_helper: typeof CodeceptJS.Helper;
541
- declare const pause: typeof CodeceptJS.pause;
542
- declare const within: typeof CodeceptJS.within;
543
- declare const session: typeof CodeceptJS.session;
544
- declare const DataTable: typeof CodeceptJS.DataTable;
545
- declare const DataTableArgument: typeof CodeceptJS.DataTableArgument;
546
- declare const codeceptjs: typeof CodeceptJS.index;
547
- declare const locate: typeof CodeceptJS.Locator.build;
548
- declare function inject(): CodeceptJS.SupportObject;
549
- declare function inject<T extends keyof CodeceptJS.SupportObject>(
550
- name: T
551
- ): CodeceptJS.SupportObject[T];
552
- declare const secret: typeof CodeceptJS.Secret.secret;
525
+ declare const codecept_dir: string
526
+ declare const output_dir: string
527
+ declare function tryTo(...fn): Promise<boolean>
528
+ declare function retryTo(...fn): Promise<null>
529
+
530
+ declare const actor: CodeceptJS.actor
531
+ declare const codecept_actor: CodeceptJS.actor
532
+ declare const Helper: typeof CodeceptJS.Helper
533
+ declare const codecept_helper: typeof CodeceptJS.Helper
534
+ declare const pause: typeof CodeceptJS.pause
535
+ declare const within: typeof CodeceptJS.within
536
+ declare const session: typeof CodeceptJS.session
537
+ declare const DataTable: typeof CodeceptJS.DataTable
538
+ declare const DataTableArgument: typeof CodeceptJS.DataTableArgument
539
+ declare const codeceptjs: typeof CodeceptJS
540
+ declare const locate: typeof CodeceptJS.Locator.build
541
+ declare function inject(): CodeceptJS.SupportObject
542
+ declare function inject<T extends keyof CodeceptJS.SupportObject>(name: T): CodeceptJS.SupportObject[T]
543
+ declare const secret: typeof CodeceptJS.Secret.secret
553
544
 
554
545
  // BDD
555
- declare const Given: typeof CodeceptJS.addStep;
556
- declare const When: typeof CodeceptJS.addStep;
557
- declare const Then: typeof CodeceptJS.addStep;
558
-
559
- declare const Feature: typeof CodeceptJS.Feature;
560
- declare const Scenario: CodeceptJS.Scenario;
561
- declare const xScenario: CodeceptJS.IScenario;
562
- declare const xFeature: CodeceptJS.IFeature;
563
- declare function Data(data: any): CodeceptJS.IData;
564
- declare function xData(data: any): CodeceptJS.IData;
546
+ declare const Given: typeof CodeceptJS.addStep
547
+ declare const When: typeof CodeceptJS.addStep
548
+ declare const Then: typeof CodeceptJS.addStep
549
+
550
+ declare const Feature: typeof CodeceptJS.Feature
551
+ declare const Scenario: CodeceptJS.Scenario
552
+ declare const xScenario: CodeceptJS.IScenario
553
+ declare const xFeature: CodeceptJS.IFeature
554
+ declare function Data(data: any): CodeceptJS.IData
555
+ declare function xData(data: any): CodeceptJS.IData
565
556
  declare function DefineParameterType(options: CodeceptJS.IParameterTypeDefinition<any>): void
566
557
 
567
558
  // Hooks
568
- declare const BeforeSuite: CodeceptJS.IHook;
569
- declare const AfterSuite: CodeceptJS.IHook;
570
- declare const Background: CodeceptJS.IHook;
571
- declare const Before: CodeceptJS.IHook;
572
- declare const After: CodeceptJS.IHook;
559
+ declare const BeforeSuite: CodeceptJS.IHook
560
+ declare const AfterSuite: CodeceptJS.IHook
561
+ declare const Background: CodeceptJS.IHook
562
+ declare const Before: CodeceptJS.IHook
563
+ declare const After: CodeceptJS.IHook
573
564
 
574
565
  // Plugins
575
566
  declare const __: any
576
567
 
577
568
  interface Window {
578
- resq: any;
569
+ resq: any
579
570
  }
580
571
 
581
572
  declare namespace NodeJS {
582
573
  interface Process {
583
- profile: string;
574
+ profile: string
584
575
  }
585
576
 
586
577
  interface Global extends CodeceptJS.Globals {
587
- codecept_dir: typeof codecept_dir;
588
- output_dir: typeof output_dir;
589
-
590
- actor: typeof actor;
591
- codecept_actor: typeof codecept_actor;
592
- Helper: typeof Helper;
593
- codecept_helper: typeof codecept_helper;
594
- pause: typeof pause;
595
- within: typeof within;
596
- session: typeof session;
597
- DataTable: typeof DataTable;
598
- DataTableArgument: typeof DataTableArgument;
599
- locate: typeof locate;
600
- inject: typeof inject;
601
- secret: typeof secret;
578
+ codecept_dir: typeof codecept_dir
579
+ output_dir: typeof output_dir
580
+
581
+ actor: typeof actor
582
+ codecept_actor: typeof codecept_actor
583
+ Helper: typeof Helper
584
+ codecept_helper: typeof codecept_helper
585
+ pause: typeof pause
586
+ within: typeof within
587
+ session: typeof session
588
+ DataTable: typeof DataTable
589
+ DataTableArgument: typeof DataTableArgument
590
+ locate: typeof locate
591
+ inject: typeof inject
592
+ secret: typeof secret
602
593
  // plugins
603
- tryTo: typeof tryTo;
604
- retryTo: typeof retryTo;
594
+ tryTo: typeof tryTo
595
+ retryTo: typeof retryTo
605
596
 
606
597
  // BDD
607
- Given: typeof Given;
608
- When: typeof When;
609
- Then: typeof Then;
598
+ Given: typeof Given
599
+ When: typeof When
600
+ Then: typeof Then
610
601
  DefineParameterType: typeof DefineParameterType
611
602
  }
612
603
  }
613
604
 
614
605
  declare namespace Mocha {
615
606
  interface MochaGlobals {
616
- Feature: typeof Feature;
617
- Scenario: typeof Scenario;
618
- xFeature: typeof xFeature;
619
- xScenario: typeof xScenario;
620
- Data: typeof Data;
621
- xData: typeof xData;
622
- BeforeSuite: typeof BeforeSuite;
623
- AfterSuite: typeof AfterSuite;
624
- Background: typeof Background;
625
- Before: typeof Before;
626
- After: typeof After;
607
+ Feature: typeof Feature
608
+ Scenario: typeof Scenario
609
+ xFeature: typeof xFeature
610
+ xScenario: typeof xScenario
611
+ Data: typeof Data
612
+ xData: typeof xData
613
+ BeforeSuite: typeof BeforeSuite
614
+ AfterSuite: typeof AfterSuite
615
+ Background: typeof Background
616
+ Before: typeof Before
617
+ After: typeof After
627
618
  }
628
619
 
629
620
  interface Suite extends SuiteRunnable {
630
- tags: any[];
631
- comment: string;
632
- feature: any;
621
+ tags: any[]
622
+ comment: string
623
+ feature: any
633
624
  }
634
625
 
635
626
  interface Test extends Runnable {
636
- artifacts: [],
637
- tags: any[];
627
+ artifacts: []
628
+ tags: any[]
638
629
  }
639
630
  }
640
631
 
641
- declare module "codeceptjs" {
642
- export = codeceptjs;
632
+ declare module 'codeceptjs' {
633
+ export = codeceptjs
643
634
  }
644
635
 
645
- declare module "@codeceptjs/helper" {
646
- export = CodeceptJS.Helper;
636
+ declare module '@codeceptjs/helper' {
637
+ export = CodeceptJS.Helper
647
638
  }