codeceptjs 3.6.10 → 3.7.0-beta.10

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 (127) hide show
  1. package/README.md +89 -119
  2. package/bin/codecept.js +9 -2
  3. package/docs/webapi/clearCookie.mustache +1 -1
  4. package/lib/actor.js +66 -102
  5. package/lib/ai.js +130 -121
  6. package/lib/assert/empty.js +3 -5
  7. package/lib/assert/equal.js +4 -7
  8. package/lib/assert/include.js +4 -6
  9. package/lib/assert/throws.js +2 -4
  10. package/lib/assert/truth.js +2 -2
  11. package/lib/codecept.js +87 -83
  12. package/lib/command/check.js +186 -0
  13. package/lib/command/configMigrate.js +2 -4
  14. package/lib/command/definitions.js +8 -26
  15. package/lib/command/generate.js +10 -14
  16. package/lib/command/gherkin/snippets.js +10 -8
  17. package/lib/command/gherkin/steps.js +1 -1
  18. package/lib/command/info.js +1 -3
  19. package/lib/command/init.js +8 -12
  20. package/lib/command/interactive.js +2 -2
  21. package/lib/command/list.js +1 -1
  22. package/lib/command/run-multiple.js +12 -35
  23. package/lib/command/run-workers.js +5 -57
  24. package/lib/command/utils.js +5 -6
  25. package/lib/command/workers/runTests.js +68 -232
  26. package/lib/container.js +354 -237
  27. package/lib/data/context.js +10 -13
  28. package/lib/data/dataScenarioConfig.js +8 -8
  29. package/lib/data/dataTableArgument.js +6 -6
  30. package/lib/data/table.js +5 -11
  31. package/lib/effects.js +218 -0
  32. package/lib/els.js +158 -0
  33. package/lib/event.js +19 -17
  34. package/lib/heal.js +88 -80
  35. package/lib/helper/AI.js +2 -1
  36. package/lib/helper/ApiDataFactory.js +3 -6
  37. package/lib/helper/Appium.js +45 -51
  38. package/lib/helper/FileSystem.js +3 -3
  39. package/lib/helper/GraphQLDataFactory.js +3 -3
  40. package/lib/helper/JSONResponse.js +57 -37
  41. package/lib/helper/Nightmare.js +35 -53
  42. package/lib/helper/Playwright.js +211 -252
  43. package/lib/helper/Protractor.js +54 -77
  44. package/lib/helper/Puppeteer.js +139 -232
  45. package/lib/helper/REST.js +5 -17
  46. package/lib/helper/TestCafe.js +21 -44
  47. package/lib/helper/WebDriver.js +131 -169
  48. package/lib/helper/testcafe/testcafe-utils.js +26 -27
  49. package/lib/listener/emptyRun.js +55 -0
  50. package/lib/listener/exit.js +7 -10
  51. package/lib/listener/{retry.js → globalRetry.js} +5 -5
  52. package/lib/listener/globalTimeout.js +165 -0
  53. package/lib/listener/helpers.js +15 -15
  54. package/lib/listener/mocha.js +1 -1
  55. package/lib/listener/result.js +12 -0
  56. package/lib/listener/steps.js +20 -18
  57. package/lib/listener/store.js +20 -0
  58. package/lib/mocha/asyncWrapper.js +216 -0
  59. package/lib/{interfaces → mocha}/bdd.js +3 -3
  60. package/lib/mocha/cli.js +308 -0
  61. package/lib/mocha/factory.js +104 -0
  62. package/lib/{interfaces → mocha}/featureConfig.js +24 -12
  63. package/lib/{interfaces → mocha}/gherkin.js +26 -28
  64. package/lib/mocha/hooks.js +112 -0
  65. package/lib/mocha/index.js +12 -0
  66. package/lib/mocha/inject.js +29 -0
  67. package/lib/{interfaces → mocha}/scenarioConfig.js +21 -6
  68. package/lib/mocha/suite.js +81 -0
  69. package/lib/mocha/test.js +159 -0
  70. package/lib/mocha/types.d.ts +42 -0
  71. package/lib/mocha/ui.js +219 -0
  72. package/lib/output.js +82 -62
  73. package/lib/pause.js +155 -138
  74. package/lib/plugin/analyze.js +349 -0
  75. package/lib/plugin/autoDelay.js +6 -6
  76. package/lib/plugin/autoLogin.js +6 -7
  77. package/lib/plugin/commentStep.js +6 -1
  78. package/lib/plugin/coverage.js +10 -19
  79. package/lib/plugin/customLocator.js +3 -3
  80. package/lib/plugin/customReporter.js +52 -0
  81. package/lib/plugin/eachElement.js +1 -1
  82. package/lib/plugin/fakerTransform.js +1 -1
  83. package/lib/plugin/heal.js +36 -9
  84. package/lib/plugin/pageInfo.js +140 -0
  85. package/lib/plugin/retryFailedStep.js +4 -4
  86. package/lib/plugin/retryTo.js +18 -118
  87. package/lib/plugin/screenshotOnFail.js +17 -49
  88. package/lib/plugin/selenoid.js +15 -35
  89. package/lib/plugin/standardActingHelpers.js +4 -1
  90. package/lib/plugin/stepByStepReport.js +56 -17
  91. package/lib/plugin/stepTimeout.js +5 -12
  92. package/lib/plugin/subtitles.js +4 -4
  93. package/lib/plugin/tryTo.js +17 -107
  94. package/lib/plugin/wdio.js +8 -10
  95. package/lib/recorder.js +146 -125
  96. package/lib/rerun.js +43 -42
  97. package/lib/result.js +161 -0
  98. package/lib/secret.js +1 -1
  99. package/lib/step/base.js +228 -0
  100. package/lib/step/config.js +50 -0
  101. package/lib/step/func.js +46 -0
  102. package/lib/step/helper.js +50 -0
  103. package/lib/step/meta.js +99 -0
  104. package/lib/step/record.js +74 -0
  105. package/lib/step/retry.js +11 -0
  106. package/lib/step/section.js +55 -0
  107. package/lib/step.js +21 -332
  108. package/lib/steps.js +50 -0
  109. package/lib/store.js +10 -2
  110. package/lib/template/heal.js +2 -11
  111. package/lib/timeout.js +66 -0
  112. package/lib/utils.js +317 -216
  113. package/lib/within.js +73 -55
  114. package/lib/workers.js +259 -275
  115. package/package.json +56 -54
  116. package/typings/index.d.ts +175 -186
  117. package/typings/promiseBasedTypes.d.ts +164 -17
  118. package/typings/types.d.ts +284 -115
  119. package/lib/cli.js +0 -256
  120. package/lib/helper/ExpectHelper.js +0 -391
  121. package/lib/helper/SoftExpectHelper.js +0 -381
  122. package/lib/listener/artifacts.js +0 -19
  123. package/lib/listener/timeout.js +0 -109
  124. package/lib/mochaFactory.js +0 -113
  125. package/lib/plugin/debugErrors.js +0 -67
  126. package/lib/scenario.js +0 -224
  127. package/lib/ui.js +0 -236
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeceptjs",
3
- "version": "3.6.10",
3
+ "version": "3.7.0-beta.10",
4
4
  "description": "Supercharged End 2 End Testing Framework for NodeJS",
5
5
  "keywords": [
6
6
  "acceptance",
@@ -29,6 +29,12 @@
29
29
  "docs/webapi/**"
30
30
  ],
31
31
  "main": "lib/index.js",
32
+ "exports": {
33
+ ".": "./lib/index.js",
34
+ "./els": "./lib/els.js",
35
+ "./effects": "./lib/effects.js",
36
+ "./steps": "./lib/steps.js"
37
+ },
32
38
  "types": "typings/index.d.ts",
33
39
  "bin": {
34
40
  "codeceptjs": "./bin/codecept.js"
@@ -44,16 +50,16 @@
44
50
  "test:unit": "mocha test/unit --recursive --timeout 10000",
45
51
  "test:runner": "mocha test/runner --recursive --timeout 10000",
46
52
  "test": "npm run test:unit && npm run test:runner",
47
- "test:appium-quick": "mocha test/helper/AppiumV2_test.js --grep 'quick'",
48
- "test:appium-other": "mocha test/helper/AppiumV2_test.js --grep 'second'",
49
- "test:ios:appium-quick": "mocha test/helper/AppiumV2_ios_test.js --grep 'quick'",
50
- "test:ios:appium-other": "mocha test/helper/AppiumV2_ios_test.js --grep 'second'",
53
+ "test:appium-quick": "mocha test/helper/Appium_test.js --grep 'quick'",
54
+ "test:appium-other": "mocha test/helper/Appium_test.js --grep 'second'",
55
+ "test:ios:appium-quick": "mocha test/helper/Appium_ios_test.js --grep 'quick'",
56
+ "test:ios:appium-other": "mocha test/helper/Appium_ios_test.js --grep 'second'",
51
57
  "test-app:start": "php -S 127.0.0.1:8000 -t test/data/app",
52
58
  "test-app:stop": "kill -9 $(lsof -t -i:8000)",
53
59
  "test:unit:webbapi:playwright": "mocha test/helper/Playwright_test.js",
54
60
  "test:unit:webbapi:puppeteer": "mocha test/helper/Puppeteer_test.js",
55
- "test:unit:webbapi:webDriver": "mocha test/helper/WebDriver_test.js",
56
- "test:unit:webbapi:webDriver:noSeleniumServer": "mocha test/helper/WebDriver.noSeleniumServer_test.js",
61
+ "test:unit:webbapi:webDriver": "mocha test/helper/WebDriver_test.js --timeout 10000",
62
+ "test:unit:webbapi:webDriver:noSeleniumServer": "mocha test/helper/WebDriver.noSeleniumServer_test.js --timeout 10000",
57
63
  "test:unit:webbapi:testCafe": "mocha test/helper/TestCafe_test.js",
58
64
  "test:unit:expect": "mocha test/helper/Expect_test.js",
59
65
  "test:plugin": "mocha test/plugin/plugin_test.js",
@@ -72,104 +78,100 @@
72
78
  "@codeceptjs/helper": "2.0.4",
73
79
  "@cucumber/cucumber-expressions": "18",
74
80
  "@cucumber/gherkin": "30",
75
- "@cucumber/messages": "27.0.0",
76
- "@xmldom/xmldom": "0.9.5",
81
+ "@cucumber/messages": "27.0.2",
82
+ "@xmldom/xmldom": "0.9.7",
77
83
  "acorn": "8.14.0",
78
- "arrify": "2.0.1",
79
- "axios": "1.7.7",
80
- "chai": "5.1.1",
81
- "chai-deep-match": "1.2.1",
82
- "chai-exclude": "2.1.1",
83
- "chai-json-schema": "1.5.1",
84
- "chai-json-schema-ajv": "5.2.4",
85
- "chai-match-pattern": "1.3.0",
86
- "chai-string": "1.5.0",
84
+ "arrify": "3.0.0",
85
+ "axios": "1.7.9",
87
86
  "chalk": "4.1.2",
87
+ "cheerio": "^1.0.0",
88
88
  "commander": "11.1.0",
89
- "cross-spawn": "7.0.5",
89
+ "cross-spawn": "7.0.6",
90
90
  "css-to-xpath": "0.1.0",
91
91
  "csstoxpath": "1.6.0",
92
92
  "envinfo": "7.14.0",
93
93
  "escape-string-regexp": "4.0.0",
94
94
  "figures": "3.2.0",
95
95
  "fn-args": "4.0.0",
96
+ "fs-extra": "11.3.0",
96
97
  "fs-extra": "11.2.0",
97
- "glob": "6.0.1",
98
+ "glob": "^11.0.1",
99
+ "fuse.js": "^7.0.0",
98
100
  "html-minifier-terser": "7.2.0",
99
- "invisi-data": "^1.0.0",
100
101
  "inquirer": "6.5.2",
102
+ "invisi-data": "^1.0.0",
101
103
  "joi": "17.13.3",
102
104
  "js-beautify": "1.15.1",
103
105
  "lodash.clonedeep": "4.5.0",
104
106
  "lodash.merge": "4.6.2",
105
- "mkdirp": "1.0.4",
106
- "mocha": "10.8.2",
107
- "monocart-coverage-reports": "2.11.3",
107
+ "mkdirp": "3.0.1",
108
+ "mocha": "11.1.0",
109
+ "monocart-coverage-reports": "2.12.0",
108
110
  "ms": "2.1.3",
109
111
  "ora-classic": "5.4.2",
110
112
  "parse-function": "5.6.10",
111
113
  "parse5": "7.2.1",
112
114
  "promise-retry": "1.1.1",
113
115
  "resq": "1.11.0",
114
- "sprintf-js": "1.1.1",
115
- "uuid": "11.0"
116
+ "sprintf-js": "1.1.3",
117
+ "uuid": "11.0.5"
116
118
  },
117
119
  "optionalDependencies": {
118
- "@codeceptjs/detox-helper": "1.1.2"
120
+ "@codeceptjs/detox-helper": "1.1.5"
119
121
  },
120
122
  "devDependencies": {
123
+ "@apollo/server": "^4",
124
+ "@codeceptjs/expect-helper": "^0.2.2",
121
125
  "@codeceptjs/mock-request": "0.3.1",
122
126
  "@eslint/eslintrc": "3.2.0",
123
- "@eslint/js": "9.16.0",
124
- "@faker-js/faker": "9.3.0",
127
+ "@eslint/js": "9.18.0",
128
+ "@faker-js/faker": "9.4.0",
125
129
  "@pollyjs/adapter-puppeteer": "6.0.6",
126
130
  "@pollyjs/core": "5.1.0",
127
131
  "@types/chai": "4.3.19",
128
- "@types/inquirer": "9.0.3",
129
- "@types/node": "22.10.1",
130
- "@wdio/sauce-service": "9.2.13",
131
- "@wdio/selenium-standalone-service": "8.3.2",
132
- "@wdio/utils": "9.2.8",
133
- "@xmldom/xmldom": "0.9.5",
134
- "apollo-server-express": "3.13.0",
132
+ "@types/inquirer": "9.0.7",
133
+ "@types/node": "22.10.7",
134
+ "@wdio/sauce-service": "9.5.7",
135
+ "@wdio/selenium-standalone-service": "8.15.0",
136
+ "@wdio/utils": "9.5.0",
137
+ "@xmldom/xmldom": "0.9.7",
138
+ "chai": "^4.0.0",
135
139
  "chai-as-promised": "7.1.2",
136
140
  "chai-subset": "1.6.0",
137
- "cheerio": "^1.0.0",
138
- "contributor-faces": "1.1.0",
139
141
  "documentation": "14.0.3",
140
- "electron": "33.2.1",
141
- "eslint": "9.16.0",
142
- "eslint-config-airbnb-base": "15.0.0",
142
+ "electron": "34.0.0",
143
+ "eslint": "^9.18.0",
143
144
  "eslint-plugin-import": "2.31.0",
144
145
  "eslint-plugin-mocha": "10.5.0",
145
146
  "expect": "29.7.0",
146
- "express": "4.21.1",
147
- "globals": "15.12.0",
148
- "graphql": "16.9.0",
147
+ "express": "4.21.2",
148
+ "globals": "15.14.0",
149
+ "graphql": "16.10.0",
150
+ "graphql-tag": "^2.12.6",
149
151
  "husky": "9.1.7",
150
152
  "inquirer-test": "2.0.1",
151
- "jsdoc": "4.0.4",
153
+ "jsdoc": "^3.6.11",
152
154
  "jsdoc-typeof-plugin": "1.0.0",
153
155
  "json-server": "0.17.4",
154
- "playwright": "1.49.0",
156
+ "playwright": "1.49.1",
155
157
  "prettier": "^3.3.2",
156
- "puppeteer": "23.8.0",
158
+ "puppeteer": "24.1.0",
157
159
  "qrcode-terminal": "0.12.0",
158
160
  "rosie": "2.1.1",
159
161
  "runok": "0.9.3",
160
162
  "semver": "7.6.3",
161
163
  "sinon": "19.0.2",
162
164
  "sinon-chai": "3.7.0",
163
- "testcafe": "3.7.0",
164
- "ts-morph": "24.0.0",
165
+ "testcafe": "3.7.1",
166
+ "ts-morph": "25.0.0",
165
167
  "ts-node": "10.9.2",
166
168
  "tsd": "^0.31.0",
167
169
  "tsd-jsdoc": "2.5.0",
168
- "typedoc": "0.26.11",
169
- "typedoc-plugin-markdown": "4.2.10",
170
- "typescript": "5.7.2",
170
+ "typedoc": "0.27.6",
171
+ "typedoc-plugin-markdown": "4.4.1",
172
+ "typescript": "5.7.3",
171
173
  "wdio-docker-service": "1.5.0",
172
- "webdriverio": "8.40.6",
174
+ "webdriverio": "^9.5.1",
173
175
  "xml2js": "0.6.2",
174
176
  "xpath": "0.0.34"
175
177
  },
@@ -184,4 +186,4 @@
184
186
  "strict": false
185
187
  }
186
188
  }
187
- }
189
+ }