codeceptjs 4.0.0-beta.1 → 4.0.0-beta.11.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 (207) hide show
  1. package/README.md +133 -120
  2. package/bin/codecept.js +107 -96
  3. package/bin/test-server.js +64 -0
  4. package/docs/webapi/clearCookie.mustache +1 -1
  5. package/docs/webapi/click.mustache +5 -1
  6. package/lib/actor.js +71 -103
  7. package/lib/ai.js +159 -188
  8. package/lib/assert/empty.js +22 -24
  9. package/lib/assert/equal.js +30 -37
  10. package/lib/assert/error.js +14 -14
  11. package/lib/assert/include.js +43 -48
  12. package/lib/assert/throws.js +11 -11
  13. package/lib/assert/truth.js +22 -22
  14. package/lib/assert.js +20 -18
  15. package/lib/codecept.js +238 -162
  16. package/lib/colorUtils.js +50 -52
  17. package/lib/command/check.js +206 -0
  18. package/lib/command/configMigrate.js +56 -51
  19. package/lib/command/definitions.js +96 -109
  20. package/lib/command/dryRun.js +77 -79
  21. package/lib/command/generate.js +234 -194
  22. package/lib/command/gherkin/init.js +42 -33
  23. package/lib/command/gherkin/snippets.js +76 -74
  24. package/lib/command/gherkin/steps.js +20 -17
  25. package/lib/command/info.js +74 -38
  26. package/lib/command/init.js +300 -290
  27. package/lib/command/interactive.js +41 -32
  28. package/lib/command/list.js +28 -27
  29. package/lib/command/run-multiple/chunk.js +51 -48
  30. package/lib/command/run-multiple/collection.js +5 -5
  31. package/lib/command/run-multiple/run.js +5 -1
  32. package/lib/command/run-multiple.js +97 -97
  33. package/lib/command/run-rerun.js +19 -25
  34. package/lib/command/run-workers.js +68 -92
  35. package/lib/command/run.js +39 -27
  36. package/lib/command/utils.js +80 -64
  37. package/lib/command/workers/runTests.js +388 -226
  38. package/lib/config.js +124 -50
  39. package/lib/container.js +765 -260
  40. package/lib/data/context.js +60 -61
  41. package/lib/data/dataScenarioConfig.js +47 -47
  42. package/lib/data/dataTableArgument.js +32 -32
  43. package/lib/data/table.js +22 -22
  44. package/lib/effects.js +307 -0
  45. package/lib/element/WebElement.js +327 -0
  46. package/lib/els.js +160 -0
  47. package/lib/event.js +173 -163
  48. package/lib/globals.js +141 -0
  49. package/lib/heal.js +89 -85
  50. package/lib/helper/AI.js +131 -41
  51. package/lib/helper/ApiDataFactory.js +107 -75
  52. package/lib/helper/Appium.js +542 -404
  53. package/lib/helper/FileSystem.js +100 -79
  54. package/lib/helper/GraphQL.js +44 -43
  55. package/lib/helper/GraphQLDataFactory.js +52 -52
  56. package/lib/helper/JSONResponse.js +126 -88
  57. package/lib/helper/Mochawesome.js +54 -29
  58. package/lib/helper/Playwright.js +2547 -1316
  59. package/lib/helper/Puppeteer.js +1578 -1181
  60. package/lib/helper/REST.js +209 -68
  61. package/lib/helper/WebDriver.js +1482 -1342
  62. package/lib/helper/errors/ConnectionRefused.js +6 -6
  63. package/lib/helper/errors/ElementAssertion.js +11 -16
  64. package/lib/helper/errors/ElementNotFound.js +5 -9
  65. package/lib/helper/errors/RemoteBrowserConnectionRefused.js +5 -5
  66. package/lib/helper/extras/Console.js +11 -11
  67. package/lib/helper/extras/PlaywrightLocator.js +110 -0
  68. package/lib/helper/extras/PlaywrightPropEngine.js +18 -18
  69. package/lib/helper/extras/PlaywrightReactVueLocator.js +17 -8
  70. package/lib/helper/extras/PlaywrightRestartOpts.js +25 -11
  71. package/lib/helper/extras/Popup.js +22 -22
  72. package/lib/helper/extras/React.js +27 -28
  73. package/lib/helper/network/actions.js +36 -42
  74. package/lib/helper/network/utils.js +78 -84
  75. package/lib/helper/scripts/blurElement.js +5 -5
  76. package/lib/helper/scripts/focusElement.js +5 -5
  77. package/lib/helper/scripts/highlightElement.js +8 -8
  78. package/lib/helper/scripts/isElementClickable.js +34 -34
  79. package/lib/helper.js +2 -3
  80. package/lib/history.js +23 -19
  81. package/lib/hooks.js +8 -8
  82. package/lib/html.js +94 -104
  83. package/lib/index.js +38 -27
  84. package/lib/listener/config.js +30 -23
  85. package/lib/listener/emptyRun.js +54 -0
  86. package/lib/listener/enhancedGlobalRetry.js +110 -0
  87. package/lib/listener/exit.js +16 -18
  88. package/lib/listener/globalRetry.js +70 -0
  89. package/lib/listener/globalTimeout.js +181 -0
  90. package/lib/listener/helpers.js +76 -51
  91. package/lib/listener/mocha.js +10 -11
  92. package/lib/listener/result.js +11 -0
  93. package/lib/listener/retryEnhancer.js +85 -0
  94. package/lib/listener/steps.js +71 -59
  95. package/lib/listener/store.js +20 -0
  96. package/lib/locator.js +214 -197
  97. package/lib/mocha/asyncWrapper.js +274 -0
  98. package/lib/mocha/bdd.js +167 -0
  99. package/lib/mocha/cli.js +341 -0
  100. package/lib/mocha/factory.js +163 -0
  101. package/lib/mocha/featureConfig.js +89 -0
  102. package/lib/mocha/gherkin.js +231 -0
  103. package/lib/mocha/hooks.js +121 -0
  104. package/lib/mocha/index.js +21 -0
  105. package/lib/mocha/inject.js +46 -0
  106. package/lib/{interfaces → mocha}/scenarioConfig.js +58 -34
  107. package/lib/mocha/suite.js +89 -0
  108. package/lib/mocha/test.js +184 -0
  109. package/lib/mocha/types.d.ts +42 -0
  110. package/lib/mocha/ui.js +242 -0
  111. package/lib/output.js +141 -71
  112. package/lib/parser.js +47 -44
  113. package/lib/pause.js +173 -145
  114. package/lib/plugin/analyze.js +403 -0
  115. package/lib/plugin/{autoLogin.js → auth.js} +178 -79
  116. package/lib/plugin/autoDelay.js +36 -40
  117. package/lib/plugin/coverage.js +131 -78
  118. package/lib/plugin/customLocator.js +22 -21
  119. package/lib/plugin/customReporter.js +53 -0
  120. package/lib/plugin/enhancedRetryFailedStep.js +99 -0
  121. package/lib/plugin/heal.js +101 -110
  122. package/lib/plugin/htmlReporter.js +3648 -0
  123. package/lib/plugin/pageInfo.js +140 -0
  124. package/lib/plugin/pauseOnFail.js +12 -11
  125. package/lib/plugin/retryFailedStep.js +82 -47
  126. package/lib/plugin/screenshotOnFail.js +111 -92
  127. package/lib/plugin/stepByStepReport.js +159 -101
  128. package/lib/plugin/stepTimeout.js +20 -25
  129. package/lib/plugin/subtitles.js +38 -38
  130. package/lib/recorder.js +193 -130
  131. package/lib/rerun.js +94 -49
  132. package/lib/result.js +238 -0
  133. package/lib/retryCoordinator.js +207 -0
  134. package/lib/secret.js +20 -18
  135. package/lib/session.js +95 -89
  136. package/lib/step/base.js +239 -0
  137. package/lib/step/comment.js +10 -0
  138. package/lib/step/config.js +50 -0
  139. package/lib/step/func.js +46 -0
  140. package/lib/step/helper.js +50 -0
  141. package/lib/step/meta.js +99 -0
  142. package/lib/step/record.js +74 -0
  143. package/lib/step/retry.js +11 -0
  144. package/lib/step/section.js +55 -0
  145. package/lib/step.js +18 -329
  146. package/lib/steps.js +54 -0
  147. package/lib/store.js +38 -7
  148. package/lib/template/heal.js +3 -12
  149. package/lib/template/prompts/generatePageObject.js +31 -0
  150. package/lib/template/prompts/healStep.js +13 -0
  151. package/lib/template/prompts/writeStep.js +9 -0
  152. package/lib/test-server.js +334 -0
  153. package/lib/timeout.js +60 -0
  154. package/lib/transform.js +8 -8
  155. package/lib/translation.js +34 -21
  156. package/lib/utils/mask_data.js +47 -0
  157. package/lib/utils.js +411 -228
  158. package/lib/workerStorage.js +37 -34
  159. package/lib/workers.js +532 -296
  160. package/package.json +115 -95
  161. package/translations/de-DE.js +5 -3
  162. package/translations/fr-FR.js +5 -4
  163. package/translations/index.js +22 -12
  164. package/translations/it-IT.js +4 -3
  165. package/translations/ja-JP.js +4 -3
  166. package/translations/nl-NL.js +76 -0
  167. package/translations/pl-PL.js +4 -3
  168. package/translations/pt-BR.js +4 -3
  169. package/translations/ru-RU.js +4 -3
  170. package/translations/utils.js +10 -0
  171. package/translations/zh-CN.js +4 -3
  172. package/translations/zh-TW.js +4 -3
  173. package/typings/index.d.ts +546 -185
  174. package/typings/promiseBasedTypes.d.ts +150 -879
  175. package/typings/types.d.ts +547 -996
  176. package/lib/cli.js +0 -249
  177. package/lib/dirname.js +0 -5
  178. package/lib/helper/Expect.js +0 -425
  179. package/lib/helper/ExpectHelper.js +0 -399
  180. package/lib/helper/MockServer.js +0 -223
  181. package/lib/helper/Nightmare.js +0 -1411
  182. package/lib/helper/Protractor.js +0 -1835
  183. package/lib/helper/SoftExpectHelper.js +0 -381
  184. package/lib/helper/TestCafe.js +0 -1410
  185. package/lib/helper/clientscripts/nightmare.js +0 -213
  186. package/lib/helper/testcafe/testControllerHolder.js +0 -42
  187. package/lib/helper/testcafe/testcafe-utils.js +0 -63
  188. package/lib/interfaces/bdd.js +0 -98
  189. package/lib/interfaces/featureConfig.js +0 -69
  190. package/lib/interfaces/gherkin.js +0 -195
  191. package/lib/listener/artifacts.js +0 -19
  192. package/lib/listener/retry.js +0 -68
  193. package/lib/listener/timeout.js +0 -109
  194. package/lib/mochaFactory.js +0 -110
  195. package/lib/plugin/allure.js +0 -15
  196. package/lib/plugin/commentStep.js +0 -136
  197. package/lib/plugin/debugErrors.js +0 -67
  198. package/lib/plugin/eachElement.js +0 -127
  199. package/lib/plugin/fakerTransform.js +0 -49
  200. package/lib/plugin/retryTo.js +0 -121
  201. package/lib/plugin/selenoid.js +0 -371
  202. package/lib/plugin/standardActingHelpers.js +0 -9
  203. package/lib/plugin/tryTo.js +0 -105
  204. package/lib/plugin/wdio.js +0 -246
  205. package/lib/scenario.js +0 -222
  206. package/lib/ui.js +0 -238
  207. package/lib/within.js +0 -70
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "codeceptjs",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.11.esm-aria",
4
+ "type": "module",
4
5
  "description": "Supercharged End 2 End Testing Framework for NodeJS",
5
6
  "keywords": [
6
7
  "acceptance",
@@ -8,7 +9,6 @@
8
9
  "end 2 end",
9
10
  "puppeteer",
10
11
  "webdriver",
11
- "testcafe",
12
12
  "playwright",
13
13
  "bdd",
14
14
  "tdd",
@@ -29,35 +29,51 @@
29
29
  "docs/webapi/**"
30
30
  ],
31
31
  "main": "lib/index.js",
32
+ "module": "lib/index.js",
32
33
  "types": "typings/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "import": "./lib/index.js",
37
+ "require": "./lib/index.js",
38
+ "types": "./typings/index.d.ts"
39
+ },
40
+ "./lib/*": "./lib/*.js",
41
+ "./els": "./lib/els.js",
42
+ "./effects": "./lib/effects.js",
43
+ "./steps": "./lib/steps.js",
44
+ "./store": "./lib/store.js"
45
+ },
33
46
  "bin": {
34
47
  "codeceptjs": "./bin/codecept.js"
35
48
  },
36
49
  "repository": "Codeception/codeceptjs",
37
50
  "scripts": {
38
- "json-server": "./node_modules/json-server/bin/index.js test/data/rest/db.json -p 8010 --watch -m test/data/rest/headers.js",
51
+ "test-server": "node bin/test-server.js test/data/rest/db.json --host 0.0.0.0 -p 8010 --read-only",
52
+ "test-server:writable": "node bin/test-server.js test/data/rest/db.json --host 0.0.0.0 -p 8010",
53
+ "mock-server:start": "node test/mock-server/start-mock-server.js",
54
+ "mock-server:stop": "kill -9 $(lsof -t -i:3001)",
55
+ "test:with-mock-server": "npm run mock-server:start && npm test",
39
56
  "json-server:graphql": "node test/data/graphql/index.js",
40
57
  "lint": "eslint bin/ examples/ lib/ test/ translations/ runok.cjs",
41
58
  "lint-fix": "eslint bin/ examples/ lib/ test/ translations/ runok.cjs --fix",
59
+ "prettier": "prettier --config prettier.config.js --write bin/**/*.js lib/**/*.js test/**/*.js translations/**/*.js runok.cjs",
42
60
  "docs": "./runok.cjs docs",
43
- "test:unit": "mocha $(find test/unit -name '*.js' | grep workers --invert) --timeout 40000 --exit",
44
- "test:runner": "mocha $(find test/runner -name '*.js') --timeout 40000 --exit",
45
- "test": "npm run test:unit && npm run test:runner",
46
- "test:appium-quick": "mocha test/helper/AppiumV2_test.js --grep 'quick'",
47
- "test:appium-other": "mocha test/helper/AppiumV2_test.js --grep 'second'",
48
- "test:ios:appium-quick": "mocha test/helper/AppiumV2_ios_test.js --grep 'quick'",
49
- "test:ios:appium-other": "mocha test/helper/AppiumV2_ios_test.js --grep 'second'",
61
+ "test:unit": "mocha test/unit --recursive --timeout 10000 --reporter @testomatio/reporter/mocha",
62
+ "test:rest": "mocha test/rest --recursive --timeout 20000 --reporter @testomatio/reporter/mocha",
63
+ "test:runner": "mocha test/runner --recursive --timeout 10000 --reporter @testomatio/reporter/mocha",
64
+ "test": "npm run test:unit && npm run test:rest && npm run test:runner",
65
+ "test:appium-quick": "mocha test/helper/Appium_test.js --grep 'quick' --reporter @testomatio/reporter/mocha",
66
+ "test:appium-other": "mocha test/helper/Appium_test.js --grep 'second' --reporter @testomatio/reporter/mocha",
67
+ "test:ios:appium-quick": "mocha test/helper/Appium_ios_test.js --grep 'quick' --reporter @testomatio/reporter/mocha",
68
+ "test:ios:appium-other": "mocha test/helper/Appium_ios_test.js --grep 'second' --reporter @testomatio/reporter/mocha",
50
69
  "test-app:start": "php -S 127.0.0.1:8000 -t test/data/app",
51
70
  "test-app:stop": "kill -9 $(lsof -t -i:8000)",
52
- "test:unit:webbapi:playwright": "mocha test/helper/Playwright_test.js",
53
- "test:unit:webbapi:puppeteer": "mocha test/helper/Puppeteer_test.js",
54
- "test:unit:webbapi:webDriver": "mocha test/helper/WebDriver_test.js",
55
- "test:unit:webbapi:webDriver:noSeleniumServer": "mocha test/helper/WebDriver.noSeleniumServer_test.js",
56
- "test:unit:webbapi:webDriver:devtools": "mocha test/helper/WebDriver_devtools_test.js --exit",
57
- "test:unit:webbapi:testCafe": "mocha test/helper/TestCafe_test.js",
58
- "test:unit:expect": "mocha test/helper/Expect_test.js --exit",
59
- "test:unit:mockServer": "mocha test/helper/MockServer_test.js",
60
- "test:plugin": "mocha test/plugin/plugin_test.js",
71
+ "test:unit:webbapi:playwright": "mocha test/helper/Playwright_test.js --reporter @testomatio/reporter/mocha",
72
+ "test:unit:webbapi:puppeteer": "mocha test/helper/Puppeteer_test.js --reporter @testomatio/reporter/mocha",
73
+ "test:unit:webbapi:webDriver": "mocha test/helper/WebDriver_test.js --timeout 10000 --reporter @testomatio/reporter/mocha",
74
+ "test:unit:webbapi:webDriver:noSeleniumServer": "mocha test/helper/WebDriver.noSeleniumServer_test.js --timeout 10000 --reporter @testomatio/reporter/mocha",
75
+ "test:unit:expect": "mocha test/helper/Expect_test.js --reporter @testomatio/reporter/mocha",
76
+ "test:plugin": "mocha test/plugin/plugin_test.js --reporter @testomatio/reporter/mocha",
61
77
  "def": "./runok.cjs def",
62
78
  "dev:graphql": "node test/data/graphql/index.js",
63
79
  "publish:site": "./runok.cjs publish:site",
@@ -65,111 +81,113 @@
65
81
  "types-fix": "node typings/fixDefFiles.js",
66
82
  "dtslint": "npm run types-fix && tsd",
67
83
  "prepare": "husky install",
68
- "prepare-release": "./runok.cjs versioning && ./runok.cjs get:commit-log"
84
+ "prepare-release": "./runok.cjs versioning && ./runok.cjs get:commit-log",
85
+ "publish-beta": "./runok.cjs publish:next-beta-version"
69
86
  },
70
87
  "dependencies": {
71
- "@babel/core": "^7.23.9",
72
- "@codeceptjs/configure": "0.10.0",
73
- "@codeceptjs/helper": "^2.0.3",
74
- "@cucumber/cucumber-expressions": "17",
75
- "@cucumber/gherkin": "26",
76
- "@cucumber/messages": "24.1.0",
77
- "@types/chai-string": "^1.4.5",
78
- "@xmldom/xmldom": "0.8.10",
79
- "acorn": "8.11.3",
80
- "arrify": "2.0.1",
81
- "axios": "1.6.7",
82
- "babel-register-esm": "^1.2.5",
83
- "chai": "5.0.3",
84
- "chai-deep-match": "1.2.1",
85
- "chai-exclude": "2.1.0",
86
- "chai-json-schema": "1.5.1",
87
- "chai-json-schema-ajv": "5.2.4",
88
- "chai-match-pattern": "1.3.0",
89
- "chai-string": "1.5.0",
88
+ "@codeceptjs/configure": "1.0.6",
89
+ "@codeceptjs/helper": "2.0.4",
90
+ "@cucumber/cucumber-expressions": "18",
91
+ "@cucumber/gherkin": "35.1.0",
92
+ "@cucumber/messages": "29.0.1",
93
+ "@xmldom/xmldom": "0.9.8",
94
+ "acorn": "8.15.0",
95
+ "ai": "^5.0.60",
96
+ "arrify": "3.0.0",
97
+ "axios": "1.12.2",
90
98
  "chalk": "4.1.2",
99
+ "cheerio": "^1.0.0",
100
+ "chokidar": "^4.0.3",
91
101
  "commander": "11.1.0",
92
- "cross-spawn": "7.0.3",
102
+ "cross-spawn": "7.0.6",
93
103
  "css-to-xpath": "0.1.0",
94
104
  "csstoxpath": "1.6.0",
95
- "debug": "^4.3.4",
96
- "devtools": "8.33.1",
97
- "envinfo": "7.11.1",
105
+ "envinfo": "7.20.0",
98
106
  "escape-string-regexp": "4.0.0",
99
107
  "figures": "3.2.0",
100
108
  "fn-args": "4.0.0",
101
- "fs-extra": "11.2.0",
102
- "glob": "6.0.1",
109
+ "fs-extra": "11.3.2",
110
+ "fuse.js": "^7.0.0",
111
+ "glob": ">=9.0.0 <12",
103
112
  "html-minifier-terser": "7.2.0",
104
- "import-sync": "2.2.0",
105
- "inquirer": "6.5.2",
106
- "joi": "17.12.2",
107
- "js-beautify": "1.15.1",
113
+ "inquirer": "^8.2.7",
114
+ "invisi-data": "^1.0.0",
115
+ "joi": "18.0.1",
116
+ "js-beautify": "1.15.4",
108
117
  "lodash.clonedeep": "4.5.0",
109
118
  "lodash.merge": "4.6.2",
110
- "mkdirp": "1.0.4",
111
- "mocha": "10.3.0",
112
- "monocart-coverage-reports": "2.7.8",
119
+ "lodash.shuffle": "4.2.0",
120
+ "mkdirp": "3.0.1",
121
+ "mocha": "11.7.5",
122
+ "monocart-coverage-reports": "2.12.9",
113
123
  "ms": "2.1.3",
124
+ "multer": "^2.0.2",
114
125
  "ora-classic": "5.4.2",
115
- "pactum": "3.6.1",
116
126
  "parse-function": "5.6.10",
117
- "parse5": "7.1.2",
127
+ "parse5": "7.3.0",
118
128
  "promise-retry": "1.1.1",
119
129
  "resq": "1.11.0",
120
- "sprintf-js": "1.1.1",
121
- "uuid": "9.0"
130
+ "sprintf-js": "1.1.3",
131
+ "uuid": "11.1.0"
122
132
  },
123
133
  "optionalDependencies": {
124
- "@codeceptjs/detox-helper": "1.0.5"
134
+ "@codeceptjs/detox-helper": "1.1.13"
125
135
  },
126
136
  "devDependencies": {
137
+ "@apollo/server": "^5",
138
+ "@codeceptjs/expect-helper": "^1.0.2",
127
139
  "@codeceptjs/mock-request": "0.3.1",
128
- "@faker-js/faker": "7.6.0",
140
+ "@eslint/eslintrc": "3.3.1",
141
+ "@eslint/js": "9.36.0",
142
+ "@faker-js/faker": "9.8.0",
143
+ "@inquirer/testing": "^2.1.49",
129
144
  "@pollyjs/adapter-puppeteer": "6.0.6",
130
- "@pollyjs/core": "5.1.0",
131
- "@types/chai": "4.3.12",
132
- "@types/inquirer": "9.0.3",
133
- "@types/node": "20.11.30",
134
- "@wdio/sauce-service": "8.32.3",
135
- "@wdio/selenium-standalone-service": "8.3.2",
136
- "@wdio/utils": "8.33.1",
137
- "@xmldom/xmldom": "0.8.10",
138
- "apollo-server-express": "2.25.3",
139
- "chai-as-promised": "7.1.1",
145
+ "@pollyjs/core": "6.0.6",
146
+ "@testomatio/reporter": "^2.3.1",
147
+ "@types/chai": "5.2.2",
148
+ "@types/inquirer": "9.0.9",
149
+ "@types/node": "^24.9.2",
150
+ "@wdio/sauce-service": "9.12.5",
151
+ "@wdio/selenium-standalone-service": "8.15.0",
152
+ "@wdio/utils": "9.20.0",
153
+ "@xmldom/xmldom": "0.9.8",
154
+ "bunosh": "latest",
155
+ "chai": "^4.5.0",
156
+ "chai-as-promised": "7.1.2",
140
157
  "chai-subset": "1.6.0",
141
- "contributor-faces": "1.1.0",
142
- "documentation": "12.3.0",
143
- "electron": "28.2.1",
144
- "eslint": "8.56.0",
145
- "eslint-config-airbnb-base": "15.0.0",
146
- "eslint-plugin-import": "2.29.1",
147
- "eslint-plugin-mocha": "6.3.0",
148
- "expect": "29.7.0",
149
- "express": "4.19.2",
150
- "graphql": "14.6.0",
151
- "husky": "8.0.3",
152
- "inquirer-test": "2.0.1",
153
- "jsdoc": "3.6.11",
158
+ "documentation": "14.0.3",
159
+ "electron": "38.2.0",
160
+ "eslint": "^9.36.0",
161
+ "eslint-plugin-import": "2.32.0",
162
+ "eslint-plugin-mocha": "11.1.0",
163
+ "expect": "30.2.0",
164
+ "express": "^5.1.0",
165
+ "globals": "16.4.0",
166
+ "graphql": "16.11.0",
167
+ "graphql-tag": "^2.12.6",
168
+ "husky": "9.1.7",
169
+ "jsdoc": "^3.6.11",
154
170
  "jsdoc-typeof-plugin": "1.0.0",
155
- "json-server": "0.10.1",
156
- "playwright": "1.42.1",
157
- "puppeteer": "22.6.0",
171
+ "json-server": "0.17.4",
172
+ "mochawesome": "^7.1.3",
173
+ "playwright": "1.55.1",
174
+ "prettier": "^3.3.2",
175
+ "puppeteer": "24.15.0",
158
176
  "qrcode-terminal": "0.12.0",
159
177
  "rosie": "2.1.1",
160
- "runok": "0.9.3",
161
- "sinon": "17.0.1",
178
+ "runok": "^0.9.3",
179
+ "semver": "7.7.3",
180
+ "sinon": "21.0.0",
162
181
  "sinon-chai": "3.7.0",
163
- "testcafe": "3.5.0",
164
- "ts-morph": "21.0.1",
182
+ "ts-morph": "27.0.2",
165
183
  "ts-node": "10.9.2",
166
- "tsd": "^0.30.7",
184
+ "tsd": "^0.33.0",
167
185
  "tsd-jsdoc": "2.5.0",
168
- "typedoc": "0.25.12",
169
- "typedoc-plugin-markdown": "3.17.1",
170
- "typescript": "5.3.3",
171
- "wdio-docker-service": "1.5.0",
172
- "webdriverio": "8.33.1",
186
+ "typedoc": "0.28.13",
187
+ "typedoc-plugin-markdown": "4.9.0",
188
+ "typescript": "5.8.3",
189
+ "wdio-docker-service": "3.2.1",
190
+ "webdriverio": "9.12.5",
173
191
  "xml2js": "0.6.2",
174
192
  "xpath": "0.0.34"
175
193
  },
@@ -177,12 +195,14 @@
177
195
  "node": ">=16.0",
178
196
  "npm": ">=5.6.0"
179
197
  },
180
- "type": "module",
181
198
  "es6": true,
182
199
  "tsd": {
183
200
  "directory": "typings",
184
201
  "compilerOptions": {
185
202
  "strict": false
186
203
  }
204
+ },
205
+ "overrides": {
206
+ "tmp": "0.2.5"
187
207
  }
188
208
  }
@@ -1,9 +1,10 @@
1
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'de'
3
+
1
4
  export default {
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',
@@ -68,6 +69,7 @@ export default {
68
69
  sendGetRequest: 'mache_einen_get_request',
69
70
  sendPutRequest: 'mache_einen_put_request',
70
71
  sendDeleteRequest: 'mache_einen_delete_request',
72
+ sendDeleteRequestWithPayload: 'mache_einen_delete_request_mit_payload',
71
73
  sendPostRequest: 'mache_einen_post_request',
72
74
  switchTo: 'wechlse_in_iframe',
73
75
  },
@@ -1,9 +1,10 @@
1
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'fr'
3
+
1
4
  export default {
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',
@@ -70,7 +71,7 @@ export default {
70
71
  scrollTo: 'défileVers',
71
72
  sendGetRequest: 'envoieLaRequêteGet',
72
73
  sendPutRequest: 'envoieLaRequêtePut',
73
- sendDeleteRequest: 'envoieLaRequêteDelete',
74
+ sendDeleteRequest: 'envoieLaRequêteDeleteAvecPayload',
74
75
  sendPostRequest: 'envoieLaRequêtePost',
75
76
  },
76
77
  }
@@ -1,13 +1,23 @@
1
- import de_DE from './de-DE.js';
2
- import it_IT from './it-IT.js';
3
- import fr_FR from './fr-FR.js';
4
- import ja_JP from './ja-JP.js';
5
- import pl_PL from './pl-PL.js';
6
- import pt_BR from './pt-BR.js';
7
- import ru_RU from './ru-RU.js';
8
- import zh_CN from './zh-CN.js';
9
- import zh_TW from './zh-TW.js';
1
+ import deDE from './de-DE.js'
2
+ import itIT from './it-IT.js'
3
+ import frFR from './fr-FR.js'
4
+ import jaJP from './ja-JP.js'
5
+ import plPL from './pl-PL.js'
6
+ import ptBR from './pt-BR.js'
7
+ import ruRU from './ru-RU.js'
8
+ import zhCN from './zh-CN.js'
9
+ import zhTW from './zh-TW.js'
10
+ import nlNL from './nl-NL.js'
10
11
 
11
- export {
12
- de_DE, it_IT, ja_JP, pl_PL, pt_BR, ru_RU, zh_CN, zh_TW, fr_FR,
13
- };
12
+ export default {
13
+ 'de-DE': deDE,
14
+ 'it-IT': itIT,
15
+ 'fr-FR': frFR,
16
+ 'ja-JP': jaJP,
17
+ 'pl-PL': plPL,
18
+ 'pt-BR': ptBR,
19
+ 'ru-RU': ruRU,
20
+ 'zh-CN': zhCN,
21
+ 'zh-TW': zhTW,
22
+ 'nl-NL': nlNL
23
+ }
@@ -1,9 +1,10 @@
1
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'it'
3
+
1
4
  export default {
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
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'ja'
3
+
1
4
  export default {
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
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'nl'
3
+
4
+ export default {
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
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'pl'
3
+
1
4
  export default {
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
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'pt'
3
+
1
4
  export default {
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
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'ru'
3
+
1
4
  export default {
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,10 @@
1
+ import { dialects } from '@cucumber/gherkin'
2
+
3
+ export function gherkinTranslations(langCode) {
4
+ const { feature, scenario, scenarioOutline } = dialects[langCode]
5
+ return {
6
+ Feature: feature[0],
7
+ Scenario: scenario[0],
8
+ ScenarioOutline: scenarioOutline[0],
9
+ }
10
+ }
@@ -1,9 +1,10 @@
1
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'zh-CN'
3
+
1
4
  export default {
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
+ import { gherkinTranslations } from './utils.js'
2
+ const langCode = 'zh-TW'
3
+
1
4
  export default {
2
5
  I: '我',
3
6
  contexts: {
4
- Feature: '功能',
5
- Scenario: '場景',
6
- ScenarioOutline: '場景大綱',
7
+ ...gherkinTranslations(langCode),
7
8
  },
8
9
  actions: {
9
10
  amOutsideAngularApp: '在Angular應用外',