codeceptjs 3.3.4 → 3.3.5-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 (61) hide show
  1. package/docs/bdd.md +12 -0
  2. package/docs/build/Playwright.js +42 -36
  3. package/docs/build/Puppeteer.js +54 -43
  4. package/docs/build/REST.js +18 -8
  5. package/docs/build/WebDriver.js +34 -25
  6. package/docs/changelog.md +0 -38
  7. package/docs/community-helpers.md +1 -0
  8. package/docs/configuration.md +21 -18
  9. package/docs/helpers/Appium.md +0 -723
  10. package/docs/helpers/Playwright.md +269 -263
  11. package/docs/helpers/Puppeteer.md +230 -222
  12. package/docs/helpers/REST.md +20 -7
  13. package/docs/helpers/WebDriver.md +265 -259
  14. package/docs/reports.md +11 -0
  15. package/docs/wiki/.git/FETCH_HEAD +1 -0
  16. package/docs/wiki/.git/HEAD +1 -0
  17. package/docs/wiki/.git/ORIG_HEAD +1 -0
  18. package/docs/wiki/.git/config +11 -0
  19. package/docs/wiki/.git/description +1 -0
  20. package/docs/wiki/.git/hooks/applypatch-msg.sample +15 -0
  21. package/docs/wiki/.git/hooks/commit-msg.sample +24 -0
  22. package/docs/wiki/.git/hooks/fsmonitor-watchman.sample +173 -0
  23. package/docs/wiki/.git/hooks/post-update.sample +8 -0
  24. package/docs/wiki/.git/hooks/pre-applypatch.sample +14 -0
  25. package/docs/wiki/.git/hooks/pre-commit.sample +49 -0
  26. package/docs/wiki/.git/hooks/pre-merge-commit.sample +13 -0
  27. package/docs/wiki/.git/hooks/pre-push.sample +53 -0
  28. package/docs/wiki/.git/hooks/pre-rebase.sample +169 -0
  29. package/docs/wiki/.git/hooks/pre-receive.sample +24 -0
  30. package/docs/wiki/.git/hooks/prepare-commit-msg.sample +42 -0
  31. package/docs/wiki/.git/hooks/push-to-checkout.sample +78 -0
  32. package/docs/wiki/.git/hooks/update.sample +128 -0
  33. package/docs/wiki/.git/index +0 -0
  34. package/docs/wiki/.git/info/exclude +6 -0
  35. package/docs/wiki/.git/logs/HEAD +1 -0
  36. package/docs/wiki/.git/logs/refs/heads/master +1 -0
  37. package/docs/wiki/.git/logs/refs/remotes/origin/HEAD +1 -0
  38. package/docs/wiki/.git/objects/pack/pack-5938044f9d30daf1c195fda4dec1d54850933935.idx +0 -0
  39. package/docs/wiki/.git/objects/pack/pack-5938044f9d30daf1c195fda4dec1d54850933935.pack +0 -0
  40. package/docs/wiki/.git/packed-refs +2 -0
  41. package/docs/wiki/.git/refs/heads/master +1 -0
  42. package/docs/wiki/.git/refs/remotes/origin/HEAD +1 -0
  43. package/docs/wiki/Community-Helpers-&-Plugins.md +7 -3
  44. package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +29 -0
  45. package/docs/wiki/Examples.md +39 -48
  46. package/docs/wiki/Release-Process.md +8 -8
  47. package/docs/wiki/Tests.md +62 -60
  48. package/docs/wiki/Upgrading-to-CodeceptJS-3.md +2 -2
  49. package/lib/command/generate.js +3 -0
  50. package/lib/command/init.js +83 -24
  51. package/lib/helper/Playwright.js +42 -36
  52. package/lib/helper/Puppeteer.js +54 -43
  53. package/lib/helper/REST.js +18 -8
  54. package/lib/helper/WebDriver.js +34 -25
  55. package/lib/interfaces/gherkin.js +1 -1
  56. package/lib/secret.js +1 -1
  57. package/lib/step.js +21 -9
  58. package/lib/utils.js +1 -6
  59. package/package.json +3 -3
  60. package/typings/index.d.ts +158 -0
  61. package/typings/types.d.ts +340 -94
package/lib/utils.js CHANGED
@@ -33,12 +33,7 @@ const isAsyncFunction = module.exports.isAsyncFunction = function (fn) {
33
33
  };
34
34
 
35
35
  module.exports.fileExists = function (filePath) {
36
- try {
37
- fs.statSync(filePath);
38
- } catch (err) {
39
- if (err.code === 'ENOENT') return false;
40
- }
41
- return true;
36
+ return fs.existsSync(filePath);
42
37
  };
43
38
 
44
39
  module.exports.isFile = function (filePath) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeceptjs",
3
- "version": "3.3.4",
3
+ "version": "3.3.5-beta.1",
4
4
  "description": "Supercharged End 2 End Testing Framework for NodeJS",
5
5
  "keywords": [
6
6
  "acceptance",
@@ -90,7 +90,7 @@
90
90
  "uuid": "^8.3.2"
91
91
  },
92
92
  "devDependencies": {
93
- "@codeceptjs/detox-helper": "^1.0.2",
93
+ "@codeceptjs/detox-helper": "^1.0.2",
94
94
  "@codeceptjs/mock-request": "^0.3.1",
95
95
  "@faker-js/faker": "^5.5.3",
96
96
  "@pollyjs/adapter-puppeteer": "^5.1.0",
@@ -132,7 +132,7 @@
132
132
  "sinon-chai": "^3.7.0",
133
133
  "testcafe": "^1.18.3",
134
134
  "ts-morph": "^3.1.3",
135
- "tsd-jsdoc": "^2.5.0",
135
+ "tsd-jsdoc": "https://github.com/englercj/tsd-jsdoc.git",
136
136
  "typescript": "^4.4.3",
137
137
  "wdio-docker-service": "^1.5.0",
138
138
  "webdriverio": "^7.16.14",
@@ -16,6 +16,164 @@ declare namespace CodeceptJS {
16
16
  path?: string,
17
17
  };
18
18
 
19
+ type MainConfig = {
20
+ /** Pattern to locate CodeceptJS tests.
21
+ * Allows to enter glob pattern or an Array<string> of patterns to match tests / test file names.
22
+ *
23
+ * For tests in JavaScript:
24
+ *
25
+ * ```js
26
+ * tests: 'tests/**.test.js'
27
+ * ```
28
+ * For tests in TypeScript:
29
+ *
30
+ * ```js
31
+ * tests: 'tests/**.test.ts'
32
+ * ```
33
+ */
34
+ tests: string;
35
+ /** Where to store failure screenshots, artifacts, etc */
36
+ output: string;
37
+ /** Pattern to filter tests by name */
38
+ grep: string;
39
+ /**
40
+ * Enabled and configured helpers
41
+ *
42
+ * ```js
43
+ * helpers: {
44
+ * Playwright: {
45
+ * url: 'https://mysite.com',
46
+ * browser: 'firefox'
47
+ * }
48
+ * }
49
+ * ```
50
+ */
51
+ helpers?: {
52
+ /** Run web tests controlling browsers via Playwright engine. https://codecept.io/playwright */
53
+ Playwright?: PlaywrightConfig;
54
+ /** Run web tests controlling browsers via Puppeteer engine. https://codecept.io/puppeteer */
55
+ Puppeteer?: PuppeteerConfig;
56
+ /** Run web tests controlling browsers via WebDriver engine. https://codecept.io/webdriver */
57
+ WebDriver?: WebDriverConfig;
58
+ /** Execute REST API requests for API testing or to assist web testing. https://codecept.io/api/ */
59
+ REST?: RESTConfig;
60
+ [key: string]: any;
61
+ },
62
+ /** [Enabled plugins](https://codecept.io/plugins/) */
63
+ plugins?: any;
64
+ /**
65
+ * Include page objects to access them via dependency injection
66
+ *
67
+ * ```js
68
+ * I: "./custom_steps.js",
69
+ * loginPage: "./pages/Login.js",
70
+ * User: "./pages/User.js",
71
+ * ```
72
+ * Configured modules can be injected by name in a Scenario:
73
+ *
74
+ * ```js
75
+ * Scenario('test', { I, loginPage, User })
76
+ * ```
77
+ */
78
+ include?: any;
79
+ /**
80
+ * Set default tests timeout in seconds.
81
+ * Tests will be killed on no response after timeout.
82
+ *
83
+ * ```js
84
+ * timeout: 20,
85
+ * ```
86
+ */
87
+ timeout?: number;
88
+ /** Disable registering global functions (Before, Scenario, etc). Not recommended */
89
+ noGlobals?: boolean;
90
+ /**
91
+ * [Mocha test runner options](https://mochajs.org/#configuring-mocha-nodejs), additional [reporters](https://codecept.io/reports/#xml) can be configured here.
92
+ *
93
+ * Example:
94
+ *
95
+ * ```js
96
+ * mocha: {
97
+ * "mocha-junit-reporter": {
98
+ * stdout: "./output/console.log",
99
+ * options: {
100
+ * mochaFile: "./output/result.xml",
101
+ * attachments: true //add screenshot for a failed test
102
+ * }
103
+ * }
104
+ * }
105
+ * ```
106
+ */
107
+ mocha?: any;
108
+ /**
109
+ * Execute JS code before tests are run. https://codecept.io/bootstrap/
110
+ * Can be either JS module file or async function:
111
+ *
112
+ * ```js
113
+ * bootstrap: async () => server.launch(),
114
+ * ```
115
+ * or
116
+ * ```js
117
+ * bootstrap: 'bootstrap.js',
118
+ * ```
119
+ */
120
+ bootstrap: () => Promise<void> | boolean | string;
121
+ /**
122
+ * Execute JS code after tests are run. https://codecept.io/bootstrap/
123
+ * Can be either JS module file or async function:
124
+ *
125
+ * ```js
126
+ * teardown: async () => server.stop(),
127
+ * ```
128
+ * or
129
+ * ```js
130
+ * teardown: 'teardown.js',
131
+ * ```
132
+ */
133
+ teardown: () => Promise<void> | boolean | string;
134
+ /**
135
+ * Execute JS code before launching tests in parallel mode.
136
+ * https://codecept.io/bootstrap/#bootstrapall-teardownall
137
+ */
138
+ bootstrapAll: () => Promise<void> | boolean | string;
139
+ /**
140
+ * Execute JS code after finishing tests in parallel mode.
141
+ * https://codecept.io/bootstrap/#bootstrapall-teardownall
142
+ */
143
+ teardownAll: () => Promise<void> | boolean | string;
144
+ /** Enable localized test commands https://codecept.io/translation/ */
145
+ translation?: string;
146
+ /**
147
+ * Require additional JS modules. https://codecept.io/configuration/#require
148
+ *
149
+ * Example:
150
+ * ```
151
+ * require: ["ts-node/register", "should"]
152
+ * ```
153
+ */
154
+ require?: Array<string>;
155
+
156
+ /**
157
+ * Enable BDD features. https://codecept.io/bdd/#configuration
158
+ *
159
+ * Sample configuration:
160
+ * ```js
161
+ * gherkin: {
162
+ * features: "./features/*.feature",
163
+ * steps: ["./step_definitions/steps.js"]
164
+ * }
165
+ * ```
166
+ */
167
+ gherkin?: {
168
+ /** load feature files by pattern. Multiple patterns can be specified as array */
169
+ features: string | Array<string>,
170
+ /** load step definitions from JS files */
171
+ steps: Array<string>
172
+ };
173
+
174
+ [key: string]: any;
175
+ };
176
+
19
177
  interface PageScrollPosition {
20
178
  x: number;
21
179
  y: number;