codeceptjs 3.7.0-beta.9 → 3.7.0

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 (50) hide show
  1. package/bin/codecept.js +1 -1
  2. package/lib/codecept.js +14 -12
  3. package/lib/command/check.js +33 -9
  4. package/lib/command/definitions.js +1 -1
  5. package/lib/command/gherkin/snippets.js +69 -69
  6. package/lib/command/interactive.js +1 -1
  7. package/lib/command/run-multiple/chunk.js +48 -45
  8. package/lib/container.js +14 -7
  9. package/lib/effects.js +7 -2
  10. package/lib/event.js +2 -0
  11. package/lib/helper/AI.js +2 -1
  12. package/lib/helper/Playwright.js +1 -1
  13. package/lib/helper/Puppeteer.js +1 -1
  14. package/lib/helper/extras/Popup.js +22 -22
  15. package/lib/mocha/asyncWrapper.js +3 -1
  16. package/lib/mocha/gherkin.js +1 -1
  17. package/lib/mocha/inject.js +5 -0
  18. package/lib/mocha/test.js +5 -2
  19. package/lib/plugin/analyze.js +50 -3
  20. package/lib/plugin/auth.js +435 -0
  21. package/lib/plugin/autoDelay.js +2 -2
  22. package/lib/plugin/autoLogin.js +3 -337
  23. package/lib/plugin/pageInfo.js +1 -1
  24. package/lib/plugin/retryFailedStep.js +13 -14
  25. package/lib/plugin/retryTo.js +6 -17
  26. package/lib/plugin/screenshotOnFail.js +4 -5
  27. package/lib/plugin/standardActingHelpers.js +4 -1
  28. package/lib/plugin/stepByStepReport.js +1 -1
  29. package/lib/plugin/tryTo.js +6 -15
  30. package/lib/recorder.js +1 -0
  31. package/lib/step/base.js +15 -4
  32. package/lib/step/comment.js +10 -0
  33. package/lib/store.js +29 -5
  34. package/lib/utils.js +1 -1
  35. package/lib/within.js +2 -0
  36. package/package.json +18 -18
  37. package/translations/de-DE.js +4 -3
  38. package/translations/fr-FR.js +4 -3
  39. package/translations/index.js +1 -0
  40. package/translations/it-IT.js +4 -3
  41. package/translations/ja-JP.js +4 -3
  42. package/translations/nl-NL.js +76 -0
  43. package/translations/pl-PL.js +4 -3
  44. package/translations/pt-BR.js +4 -3
  45. package/translations/ru-RU.js +4 -3
  46. package/translations/utils.js +9 -0
  47. package/translations/zh-CN.js +4 -3
  48. package/translations/zh-TW.js +4 -3
  49. package/typings/promiseBasedTypes.d.ts +0 -652
  50. package/typings/types.d.ts +99 -655
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeceptjs",
3
- "version": "3.7.0-beta.9",
3
+ "version": "3.7.0",
4
4
  "description": "Supercharged End 2 End Testing Framework for NodeJS",
5
5
  "keywords": [
6
6
  "acceptance",
@@ -31,6 +31,7 @@
31
31
  "main": "lib/index.js",
32
32
  "exports": {
33
33
  ".": "./lib/index.js",
34
+ "./lib/*": "./lib/*.js",
34
35
  "./els": "./lib/els.js",
35
36
  "./effects": "./lib/effects.js",
36
37
  "./steps": "./lib/steps.js"
@@ -74,11 +75,11 @@
74
75
  "publish-beta": "./runok.js publish:next-beta-version"
75
76
  },
76
77
  "dependencies": {
77
- "@codeceptjs/configure": "1.0.1",
78
+ "@codeceptjs/configure": "1.0.2",
78
79
  "@codeceptjs/helper": "2.0.4",
79
80
  "@cucumber/cucumber-expressions": "18",
80
- "@cucumber/gherkin": "30",
81
- "@cucumber/messages": "27.0.2",
81
+ "@cucumber/gherkin": "31",
82
+ "@cucumber/messages": "27.2.0",
82
83
  "@xmldom/xmldom": "0.9.7",
83
84
  "acorn": "8.14.0",
84
85
  "arrify": "3.0.0",
@@ -94,11 +95,10 @@
94
95
  "figures": "3.2.0",
95
96
  "fn-args": "4.0.0",
96
97
  "fs-extra": "11.3.0",
97
- "fs-extra": "11.2.0",
98
- "glob": "^11.0.1",
98
+ "glob": ">=9.0.0 <12",
99
99
  "fuse.js": "^7.0.0",
100
100
  "html-minifier-terser": "7.2.0",
101
- "inquirer": "6.5.2",
101
+ "inquirer": "8.2.6",
102
102
  "invisi-data": "^1.0.0",
103
103
  "joi": "17.13.3",
104
104
  "js-beautify": "1.15.1",
@@ -124,23 +124,23 @@
124
124
  "@codeceptjs/expect-helper": "^0.2.2",
125
125
  "@codeceptjs/mock-request": "0.3.1",
126
126
  "@eslint/eslintrc": "3.2.0",
127
- "@eslint/js": "9.18.0",
127
+ "@eslint/js": "9.19.0",
128
128
  "@faker-js/faker": "9.4.0",
129
129
  "@pollyjs/adapter-puppeteer": "6.0.6",
130
130
  "@pollyjs/core": "5.1.0",
131
131
  "@types/chai": "4.3.19",
132
132
  "@types/inquirer": "9.0.7",
133
- "@types/node": "22.10.7",
134
- "@wdio/sauce-service": "9.5.7",
133
+ "@types/node": "22.13.0",
134
+ "@wdio/sauce-service": "9.7.2",
135
135
  "@wdio/selenium-standalone-service": "8.15.0",
136
- "@wdio/utils": "9.5.0",
136
+ "@wdio/utils": "9.7.2",
137
137
  "@xmldom/xmldom": "0.9.7",
138
138
  "chai": "^4.0.0",
139
139
  "chai-as-promised": "7.1.2",
140
140
  "chai-subset": "1.6.0",
141
141
  "documentation": "14.0.3",
142
- "electron": "34.0.0",
143
- "eslint": "^9.18.0",
142
+ "electron": "34.0.2",
143
+ "eslint": "^9.19.0",
144
144
  "eslint-plugin-import": "2.31.0",
145
145
  "eslint-plugin-mocha": "10.5.0",
146
146
  "expect": "29.7.0",
@@ -153,13 +153,13 @@
153
153
  "jsdoc": "^3.6.11",
154
154
  "jsdoc-typeof-plugin": "1.0.0",
155
155
  "json-server": "0.17.4",
156
- "playwright": "1.49.1",
156
+ "playwright": "1.50.1",
157
157
  "prettier": "^3.3.2",
158
- "puppeteer": "24.1.0",
158
+ "puppeteer": "24.1.1",
159
159
  "qrcode-terminal": "0.12.0",
160
160
  "rosie": "2.1.1",
161
161
  "runok": "0.9.3",
162
- "semver": "7.6.3",
162
+ "semver": "7.7.0",
163
163
  "sinon": "19.0.2",
164
164
  "sinon-chai": "3.7.0",
165
165
  "testcafe": "3.7.1",
@@ -170,8 +170,8 @@
170
170
  "typedoc": "0.27.6",
171
171
  "typedoc-plugin-markdown": "4.4.1",
172
172
  "typescript": "5.7.3",
173
- "wdio-docker-service": "1.5.0",
174
- "webdriverio": "^9.5.1",
173
+ "wdio-docker-service": "3.2.1",
174
+ "webdriverio": "9.7.2",
175
175
  "xml2js": "0.6.2",
176
176
  "xpath": "0.0.34"
177
177
  },
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'de'
3
+
1
4
  module.exports = {
2
5
  I: 'Ich',
3
6
  contexts: {
4
- Feature: 'Funktionalität',
5
- Scenario: 'Szenario',
6
- ScenarioOutline: 'Szenariogrundriss',
7
+ ...gherkinTranslations(langCode),
7
8
  },
8
9
  actions: {
9
10
  amOutsideAngularApp: 'befinde_mich_außerhalb_der_angular_app',
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'fr'
3
+
1
4
  module.exports = {
2
5
  I: 'Je',
3
6
  contexts: {
4
- Feature: 'Fonctionnalité',
5
- Scenario: 'Scénario',
6
- ScenarioOutline: 'Plan du scénario',
7
+ ...gherkinTranslations(langCode),
7
8
  Before: 'Avant',
8
9
  After: 'Après',
9
10
  BeforeSuite: 'AvantLaSuite',
@@ -7,3 +7,4 @@ exports['pt-BR'] = require('./pt-BR')
7
7
  exports['ru-RU'] = require('./ru-RU')
8
8
  exports['zh-CN'] = require('./zh-CN')
9
9
  exports['zh-TW'] = require('./zh-TW')
10
+ exports['nl-NL'] = require('./nl-NL')
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'it'
3
+
1
4
  module.exports = {
2
5
  I: 'io',
3
6
  contexts: {
4
- Feature: 'Caratteristica',
5
- Scenario: 'lo_scenario',
6
- ScenarioOutline: 'Schema dello scenario',
7
+ ...gherkinTranslations(langCode),
7
8
  Before: 'Prima',
8
9
  After: 'Dopo',
9
10
  BeforeSuite: 'Prima_della_suite',
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'ja'
3
+
1
4
  module.exports = {
2
5
  I: '私は',
3
6
  contexts: {
4
- Feature: 'フィーチャ',
5
- Scenario: 'シナリオ',
6
- ScenarioOutline: 'シナリオアウトライン',
7
+ ...gherkinTranslations(langCode),
7
8
  },
8
9
  actions: {
9
10
  amOutsideAngularApp: 'Angularの外に出る',
@@ -0,0 +1,76 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'nl'
3
+
4
+ module.exports = {
5
+ I: 'Ik',
6
+ contexts: {
7
+ ...gherkinTranslations(langCode),
8
+ },
9
+ actions: {
10
+ amOutsideAngularApp: 'ben_buiten_angular_app',
11
+ amInsideAngularApp: 'ben_binnen_angular_app',
12
+ waitForElement: 'wacht_op_element',
13
+ waitForClickable: 'wacht_tot_klikbaar',
14
+ waitForVisible: 'wacht_tot_zichtbaar',
15
+ waitForEnabled: 'wacht_tot_ingeschakeld',
16
+ waitForInvisible: 'wacht_tot_onzichtbaar',
17
+ waitInUrl: 'wacht_in_url',
18
+ waitForText: 'wacht_op_tekst',
19
+ moveTo: 'beweeg_de_cursor_naar',
20
+ refresh: 'vernieuw_pagina',
21
+ refreshPage: 'vernieuw_pagina',
22
+ haveModule: 'heb_module',
23
+ resetModule: 'reset_module',
24
+ amOnPage: 'ben_op_pagina',
25
+ click: 'klik',
26
+ doubleClick: 'dubbelklik',
27
+ see: 'zie',
28
+ dontSee: 'zie_niet',
29
+ selectOption: 'selecteer_optie',
30
+ fillField: 'vul_veld_in',
31
+ pressKey: 'druk_op_toets',
32
+ triggerMouseEvent: 'trigger_een_muis_event',
33
+ attachFile: 'voeg_bestand_toe',
34
+ seeInField: 'zie_in_veld',
35
+ dontSeeInField: 'zie_niet_in_veld',
36
+ appendField: 'voeg_toe_aan_veld',
37
+ checkOption: 'vink_optie_aan',
38
+ seeCheckboxIsChecked: 'zie_dat_checkbox_aangevinkt_is',
39
+ dontSeeCheckboxIsChecked: 'zie_niet_dat_checkbox_aangevinkt_is',
40
+ grabTextFrom: 'pak_tekst_van',
41
+ grabValueFrom: 'pak_waarde_van',
42
+ grabAttributeFrom: 'pak_attribuut_van',
43
+ seeInTitle: 'zie_in_titel',
44
+ dontSeeInTitle: 'zie_niet_in_titel',
45
+ grabTitle: 'pak_titel',
46
+ seeElement: 'zie_element',
47
+ dontSeeElement: 'zie_element_niet',
48
+ seeInSource: 'zie_in_broncode',
49
+ dontSeeInSource: 'zie_niet_in_broncode',
50
+ executeScript: 'voer_script_uit',
51
+ executeAsyncScript: 'voer_asynchroon_script_uit',
52
+ seeInCurrentUrl: 'zie_in_huidige_url',
53
+ dontSeeInCurrentUrl: 'zie_niet_in_huidige_url',
54
+ seeCurrentUrlEquals: 'zie_dat_url_gelijk_is',
55
+ dontSeeCurrentUrlEquals: 'zie_dat_url_niet_gelijk_is',
56
+ saveScreenshot: 'sla_screenshot_op',
57
+ setCookie: 'stel_cookie_in',
58
+ clearCookie: 'verwijder_cookie',
59
+ seeCookie: 'zie_cookie',
60
+ dontSeeCookie: 'zie_cookie_niet',
61
+ grabCookie: 'pak_cookie',
62
+ resizeWindow: 'verander_venstergrootte',
63
+ wait: 'wacht',
64
+ haveHeader: 'gebruik_http_header',
65
+ clearField: 'wis_veld',
66
+ dontSeeElementInDOM: 'zie_element_niet_in_DOM',
67
+ moveCursorTo: 'beweeg_de_cursor_naar',
68
+ scrollTo: 'scroll_naar',
69
+ sendGetRequest: 'doe_een_get_verzoek',
70
+ sendPutRequest: 'doe_een_put_verzoek',
71
+ sendDeleteRequest: 'doe_een_delete_verzoek',
72
+ sendDeleteRequestWithPayload: 'doe_een_delete_verzoek_met_payload',
73
+ sendPostRequest: 'doe_een_post_verzoek',
74
+ switchTo: 'wissel_naar_iframe',
75
+ },
76
+ }
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'pl'
3
+
1
4
  module.exports = {
2
5
  I: 'Ja',
3
6
  contexts: {
4
- Feature: 'Funkcja',
5
- Scenario: 'Scenariusz',
6
- ScenarioOutline: 'Szablon scenariusza',
7
+ ...gherkinTranslations(langCode),
7
8
  },
8
9
  actions: {
9
10
  amOutsideAngularApp: 'jestem_poza_aplikacją_angular',
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'pt'
3
+
1
4
  module.exports = {
2
5
  I: 'Eu',
3
6
  contexts: {
4
- Feature: 'Funcionalidade',
5
- Scenario: 'Cenário',
6
- ScenarioOutline: 'Esquema do Cenário',
7
+ ...gherkinTranslations(langCode),
7
8
  Before: 'Antes',
8
9
  After: 'Depois',
9
10
  BeforeSuite: 'AntesDaSuite',
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'ru'
3
+
1
4
  module.exports = {
2
5
  I: 'Я',
3
6
  contexts: {
4
- Feature: 'Цель',
5
- Scenario: 'Сценарий',
6
- ScenarioOutline: 'Структура сценария',
7
+ ...gherkinTranslations(langCode),
7
8
  Before: 'Начало',
8
9
  After: 'Конец',
9
10
  BeforeSuite: 'Перед_всем',
@@ -0,0 +1,9 @@
1
+ module.exports.gherkinTranslations = function (langCode) {
2
+ const gherkinLanguages = require('@cucumber/gherkin/src/gherkin-languages.json')
3
+ const { feature, scenario, scenarioOutline } = gherkinLanguages[langCode]
4
+ return {
5
+ Feature: feature[0],
6
+ Scenario: scenario[0],
7
+ ScenarioOutline: scenarioOutline[0],
8
+ }
9
+ }
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'zh-CN'
3
+
1
4
  module.exports = {
2
5
  I: '我',
3
6
  contexts: {
4
- Feature: '功能',
5
- Scenario: '场景',
6
- ScenarioOutline: '场景大纲',
7
+ ...gherkinTranslations(langCode),
7
8
  },
8
9
  actions: {
9
10
  amOutsideAngularApp: '在Angular应用外',
@@ -1,9 +1,10 @@
1
+ const { gherkinTranslations } = require('./utils')
2
+ const langCode = 'zh-TW'
3
+
1
4
  module.exports = {
2
5
  I: '我',
3
6
  contexts: {
4
- Feature: '功能',
5
- Scenario: '場景',
6
- ScenarioOutline: '場景大綱',
7
+ ...gherkinTranslations(langCode),
7
8
  },
8
9
  actions: {
9
10
  amOutsideAngularApp: '在Angular應用外',