codeceptjs 3.5.14 → 3.6.0-beta.1.ai-healers

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 (137) hide show
  1. package/README.md +2 -2
  2. package/bin/codecept.js +66 -30
  3. package/docs/advanced.md +351 -0
  4. package/docs/ai.md +365 -0
  5. package/docs/api.md +323 -0
  6. package/docs/basics.md +979 -0
  7. package/docs/bdd.md +539 -0
  8. package/docs/best.md +237 -0
  9. package/docs/books.md +37 -0
  10. package/docs/bootstrap.md +135 -0
  11. package/docs/build/AI.js +124 -0
  12. package/docs/build/ApiDataFactory.js +410 -0
  13. package/docs/build/Appium.js +2027 -0
  14. package/docs/build/Expect.js +422 -0
  15. package/docs/build/FileSystem.js +228 -0
  16. package/docs/build/GraphQL.js +229 -0
  17. package/docs/build/GraphQLDataFactory.js +309 -0
  18. package/docs/build/JSONResponse.js +338 -0
  19. package/docs/build/Mochawesome.js +71 -0
  20. package/docs/build/Nightmare.js +2152 -0
  21. package/docs/build/Playwright.js +5110 -0
  22. package/docs/build/Protractor.js +2706 -0
  23. package/docs/build/Puppeteer.js +3905 -0
  24. package/docs/build/REST.js +344 -0
  25. package/docs/build/TestCafe.js +2125 -0
  26. package/docs/build/WebDriver.js +4240 -0
  27. package/docs/changelog.md +2572 -0
  28. package/docs/commands.md +266 -0
  29. package/docs/community-helpers.md +58 -0
  30. package/docs/configuration.md +157 -0
  31. package/docs/continuous-integration.md +22 -0
  32. package/docs/custom-helpers.md +306 -0
  33. package/docs/data.md +379 -0
  34. package/docs/detox.md +235 -0
  35. package/docs/docker.md +136 -0
  36. package/docs/email.md +183 -0
  37. package/docs/examples.md +149 -0
  38. package/docs/heal.md +186 -0
  39. package/docs/helpers/ApiDataFactory.md +266 -0
  40. package/docs/helpers/Appium.md +1374 -0
  41. package/docs/helpers/Detox.md +586 -0
  42. package/docs/helpers/Expect.md +275 -0
  43. package/docs/helpers/FileSystem.md +152 -0
  44. package/docs/helpers/GraphQL.md +151 -0
  45. package/docs/helpers/GraphQLDataFactory.md +226 -0
  46. package/docs/helpers/JSONResponse.md +254 -0
  47. package/docs/helpers/Mochawesome.md +8 -0
  48. package/docs/helpers/MockRequest.md +377 -0
  49. package/docs/helpers/Nightmare.md +1305 -0
  50. package/docs/helpers/OpenAI.md +70 -0
  51. package/docs/helpers/Playwright.md +2759 -0
  52. package/docs/helpers/Polly.md +44 -0
  53. package/docs/helpers/Protractor.md +1769 -0
  54. package/docs/helpers/Puppeteer-firefox.md +86 -0
  55. package/docs/helpers/Puppeteer.md +2317 -0
  56. package/docs/helpers/REST.md +218 -0
  57. package/docs/helpers/TestCafe.md +1321 -0
  58. package/docs/helpers/WebDriver.md +2547 -0
  59. package/docs/hooks.md +340 -0
  60. package/docs/index.md +111 -0
  61. package/docs/installation.md +75 -0
  62. package/docs/internal-api.md +266 -0
  63. package/docs/locators.md +339 -0
  64. package/docs/mobile-react-native-locators.md +67 -0
  65. package/docs/mobile.md +338 -0
  66. package/docs/pageobjects.md +291 -0
  67. package/docs/parallel.md +400 -0
  68. package/docs/playwright.md +632 -0
  69. package/docs/plugins.md +1247 -0
  70. package/docs/puppeteer.md +316 -0
  71. package/docs/quickstart.md +162 -0
  72. package/docs/react.md +70 -0
  73. package/docs/reports.md +392 -0
  74. package/docs/secrets.md +36 -0
  75. package/docs/shadow.md +68 -0
  76. package/docs/shared/keys.mustache +31 -0
  77. package/docs/shared/react.mustache +1 -0
  78. package/docs/testcafe.md +174 -0
  79. package/docs/translation.md +247 -0
  80. package/docs/tutorial.md +271 -0
  81. package/docs/typescript.md +180 -0
  82. package/docs/ui.md +59 -0
  83. package/docs/videos.md +28 -0
  84. package/docs/visual.md +202 -0
  85. package/docs/vue.md +143 -0
  86. package/docs/webdriver.md +701 -0
  87. package/docs/wiki/Books-&-Posts.md +27 -0
  88. package/docs/wiki/Community-Helpers-&-Plugins.md +53 -0
  89. package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +61 -0
  90. package/docs/wiki/Examples.md +145 -0
  91. package/docs/wiki/Google-Summer-of-Code-(GSoC)-2020.md +68 -0
  92. package/docs/wiki/Home.md +16 -0
  93. package/docs/wiki/Migration-to-Appium-v2---CodeceptJS.md +83 -0
  94. package/docs/wiki/Release-Process.md +24 -0
  95. package/docs/wiki/Roadmap.md +23 -0
  96. package/docs/wiki/Tests.md +1393 -0
  97. package/docs/wiki/Upgrading-to-CodeceptJS-3.md +153 -0
  98. package/docs/wiki/Videos.md +19 -0
  99. package/lib/actor.js +3 -6
  100. package/lib/ai.js +152 -80
  101. package/lib/cli.js +1 -0
  102. package/lib/command/generate.js +34 -0
  103. package/lib/command/run-workers.js +3 -0
  104. package/lib/command/run.js +3 -0
  105. package/lib/container.js +2 -0
  106. package/lib/heal.js +172 -0
  107. package/lib/helper/AI.js +124 -0
  108. package/lib/helper/Appium.js +12 -36
  109. package/lib/helper/Expect.js +7 -10
  110. package/lib/helper/JSONResponse.js +8 -8
  111. package/lib/helper/Playwright.js +240 -100
  112. package/lib/helper/Puppeteer.js +9 -61
  113. package/lib/helper/REST.js +1 -4
  114. package/lib/helper/WebDriver.js +10 -324
  115. package/lib/index.js +3 -0
  116. package/lib/listener/steps.js +0 -2
  117. package/lib/locator.js +4 -13
  118. package/lib/plugin/heal.js +26 -117
  119. package/lib/recorder.js +11 -5
  120. package/lib/step.js +1 -3
  121. package/lib/store.js +2 -0
  122. package/lib/template/heal.js +39 -0
  123. package/package.json +23 -27
  124. package/typings/index.d.ts +0 -16
  125. package/typings/promiseBasedTypes.d.ts +55 -338
  126. package/typings/types.d.ts +58 -353
  127. package/docs/webapi/dontSeeTraffic.mustache +0 -13
  128. package/docs/webapi/flushNetworkTraffics.mustache +0 -5
  129. package/docs/webapi/grabRecordedNetworkTraffics.mustache +0 -10
  130. package/docs/webapi/seeTraffic.mustache +0 -36
  131. package/docs/webapi/startRecordingTraffic.mustache +0 -8
  132. package/docs/webapi/stopRecordingTraffic.mustache +0 -5
  133. package/docs/webapi/waitForCookie.mustache +0 -9
  134. package/lib/helper/MockServer.js +0 -221
  135. package/lib/helper/errors/ElementAssertion.js +0 -38
  136. package/lib/helper/networkTraffics/utils.js +0 -137
  137. /package/{lib/helper → docs/build}/OpenAI.js +0 -0
@@ -0,0 +1,275 @@
1
+ ---
2
+ permalink: /helpers/Expect
3
+ editLink: false
4
+ sidebar: auto
5
+ title: Expect
6
+ ---
7
+
8
+ <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
9
+
10
+ ## ExpectHelper
11
+
12
+ This helper allows performing assertions based on Chai.
13
+
14
+ ### Examples
15
+
16
+ Zero-configuration when paired with other helpers like REST, Playwright:
17
+
18
+ ```js
19
+ // inside codecept.conf.js
20
+ {
21
+ helpers: {
22
+ Playwright: {...},
23
+ Expect: {},
24
+ }
25
+ }
26
+ ```
27
+
28
+ ## Methods
29
+
30
+ ### expectAbove
31
+
32
+ #### Parameters
33
+
34
+ - `targetData` **any**
35
+ - `aboveThan` **any**
36
+ - `customErrorMsg` **any?**
37
+
38
+ ### expectBelow
39
+
40
+ #### Parameters
41
+
42
+ - `targetData` **any**
43
+ - `belowThan` **any**
44
+ - `customErrorMsg` **any?**
45
+
46
+ ### expectContain
47
+
48
+ #### Parameters
49
+
50
+ - `actualValue` **any**
51
+ - `expectedValueToContain` **any**
52
+ - `customErrorMsg` **any?**
53
+
54
+ ### expectDeepEqual
55
+
56
+ #### Parameters
57
+
58
+ - `actualValue` **any**
59
+ - `expectedValue` **any**
60
+ - `customErrorMsg` **any?**
61
+
62
+ ### expectDeepEqualExcluding
63
+
64
+ expects members of two JSON objects are deeply equal excluding some properties
65
+
66
+ #### Parameters
67
+
68
+ - `actualValue` **any**
69
+ - `expectedValue` **any**
70
+ - `fieldsToExclude` **any**
71
+ - `customErrorMsg` **any?**
72
+
73
+ ### expectDeepIncludeMembers
74
+
75
+ expects an array to be a superset of another array
76
+
77
+ #### Parameters
78
+
79
+ - `superset` **any**
80
+ - `set` **any**
81
+ - `customErrorMsg` **any?**
82
+
83
+ ### expectDeepMembers
84
+
85
+ expects members of two arrays are deeply equal
86
+
87
+ #### Parameters
88
+
89
+ - `actualValue` **any**
90
+ - `expectedValue` **any**
91
+ - `customErrorMsg` **any?**
92
+
93
+ ### expectEmpty
94
+
95
+ #### Parameters
96
+
97
+ - `targetData` **any**
98
+ - `customErrorMsg` **any?**
99
+
100
+ ### expectEndsWith
101
+
102
+ #### Parameters
103
+
104
+ - `actualValue` **any**
105
+ - `expectedValueToEndWith` **any**
106
+ - `customErrorMsg` **any?**
107
+
108
+ ### expectEqual
109
+
110
+ #### Parameters
111
+
112
+ - `actualValue` **any**
113
+ - `expectedValue` **any**
114
+ - `customErrorMsg` **any?**
115
+
116
+ ### expectEqualIgnoreCase
117
+
118
+ #### Parameters
119
+
120
+ - `actualValue` **any**
121
+ - `expectedValue` **any**
122
+ - `customErrorMsg` **any?**
123
+
124
+ ### expectFalse
125
+
126
+ #### Parameters
127
+
128
+ - `targetData` **any**
129
+ - `customErrorMsg` **any?**
130
+
131
+ ### expectHasAProperty
132
+
133
+ #### Parameters
134
+
135
+ - `targetData` **any**
136
+ - `propertyName` **any**
137
+ - `customErrorMsg` **any?**
138
+
139
+ ### expectHasProperty
140
+
141
+ #### Parameters
142
+
143
+ - `targetData` **any**
144
+ - `propertyName` **any**
145
+ - `customErrorMsg` **any?**
146
+
147
+ ### expectJsonSchema
148
+
149
+ #### Parameters
150
+
151
+ - `targetData` **any**
152
+ - `jsonSchema` **any**
153
+ - `customErrorMsg` **any?**
154
+
155
+ ### expectJsonSchemaUsingAJV
156
+
157
+ #### Parameters
158
+
159
+ - `targetData` **any**
160
+ - `jsonSchema` **any**
161
+ - `customErrorMsg` **any?**
162
+ - `ajvOptions` **any** Pass AJV options
163
+
164
+ ### expectLengthAboveThan
165
+
166
+ #### Parameters
167
+
168
+ - `targetData` **any**
169
+ - `lengthAboveThan` **any**
170
+ - `customErrorMsg` **any?**
171
+
172
+ ### expectLengthBelowThan
173
+
174
+ #### Parameters
175
+
176
+ - `targetData` **any**
177
+ - `lengthBelowThan` **any**
178
+ - `customErrorMsg` **any?**
179
+
180
+ ### expectLengthOf
181
+
182
+ #### Parameters
183
+
184
+ - `targetData` **any**
185
+ - `length` **any**
186
+ - `customErrorMsg` **any?**
187
+
188
+ ### expectMatchesPattern
189
+
190
+ expects a JSON object matches a provided pattern
191
+
192
+ #### Parameters
193
+
194
+ - `actualValue` **any**
195
+ - `expectedPattern` **any**
196
+ - `customErrorMsg` **any?**
197
+
198
+ ### expectMatchRegex
199
+
200
+ #### Parameters
201
+
202
+ - `targetData` **any**
203
+ - `regex` **any**
204
+ - `customErrorMsg` **any?**
205
+
206
+ ### expectNotContain
207
+
208
+ #### Parameters
209
+
210
+ - `actualValue` **any**
211
+ - `expectedValueToNotContain` **any**
212
+ - `customErrorMsg` **any?**
213
+
214
+ ### expectNotDeepEqual
215
+
216
+ #### Parameters
217
+
218
+ - `actualValue` **any**
219
+ - `expectedValue` **any**
220
+ - `customErrorMsg` **any?**
221
+
222
+ ### expectNotEndsWith
223
+
224
+ #### Parameters
225
+
226
+ - `actualValue` **any**
227
+ - `expectedValueToNotEndWith` **any**
228
+ - `customErrorMsg` **any?**
229
+
230
+ ### expectNotEqual
231
+
232
+ #### Parameters
233
+
234
+ - `actualValue` **any**
235
+ - `expectedValue` **any**
236
+ - `customErrorMsg` **any?**
237
+
238
+ ### expectNotStartsWith
239
+
240
+ #### Parameters
241
+
242
+ - `actualValue` **any**
243
+ - `expectedValueToNotStartWith` **any**
244
+ - `customErrorMsg` **any?**
245
+
246
+ ### expectStartsWith
247
+
248
+ #### Parameters
249
+
250
+ - `actualValue` **any**
251
+ - `expectedValueToStartWith` **any**
252
+ - `customErrorMsg` **any?**
253
+
254
+ ### expectToBeA
255
+
256
+ #### Parameters
257
+
258
+ - `targetData` **any**
259
+ - `type` **any**
260
+ - `customErrorMsg` **any?**
261
+
262
+ ### expectToBeAn
263
+
264
+ #### Parameters
265
+
266
+ - `targetData` **any**
267
+ - `type` **any**
268
+ - `customErrorMsg` **any?**
269
+
270
+ ### expectTrue
271
+
272
+ #### Parameters
273
+
274
+ - `targetData` **any**
275
+ - `customErrorMsg` **any?**
@@ -0,0 +1,152 @@
1
+ ---
2
+ permalink: /helpers/FileSystem
3
+ editLink: false
4
+ sidebar: auto
5
+ title: FileSystem
6
+ ---
7
+
8
+ <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
9
+
10
+ ## FileSystem
11
+
12
+ **Extends Helper**
13
+
14
+ Helper for testing filesystem.
15
+ Can be easily used to check file structures:
16
+
17
+ ```js
18
+ I.amInPath('test');
19
+ I.seeFile('codecept.js');
20
+ I.seeInThisFile('FileSystem');
21
+ I.dontSeeInThisFile("WebDriver");
22
+ ```
23
+
24
+ ## Configuration
25
+
26
+ Enable helper in config file:
27
+
28
+ ```js
29
+ helpers: {
30
+ FileSystem: {},
31
+ }
32
+ ```
33
+
34
+ ## Methods
35
+
36
+ ### amInPath
37
+
38
+ Enters a directory In local filesystem.
39
+ Starts from a current directory
40
+
41
+ #### Parameters
42
+
43
+ - `openPath` **[string][1]**
44
+
45
+ ### dontSeeFileContentsEqual
46
+
47
+ Checks that contents of file found by `seeFile` doesn't equal to text.
48
+
49
+ #### Parameters
50
+
51
+ - `text` **[string][1]**
52
+ - `encoding` **[string][1]**
53
+
54
+ ### dontSeeInThisFile
55
+
56
+ Checks that file found by `seeFile` doesn't include text.
57
+
58
+ #### Parameters
59
+
60
+ - `text` **[string][1]**
61
+ - `encoding` **[string][1]**
62
+
63
+ ### grabFileNames
64
+
65
+ Returns file names in current directory.
66
+
67
+ ```js
68
+ I.handleDownloads();
69
+ I.click('Download Files');
70
+ I.amInPath('output/downloads');
71
+ const downloadedFileNames = I.grabFileNames();
72
+ ```
73
+
74
+ ### seeFile
75
+
76
+ Checks that file exists
77
+
78
+ #### Parameters
79
+
80
+ - `name` **[string][1]**
81
+
82
+ ### seeFileContentsEqual
83
+
84
+ Checks that contents of file found by `seeFile` equal to text.
85
+
86
+ #### Parameters
87
+
88
+ - `text` **[string][1]**
89
+ - `encoding` **[string][1]**
90
+
91
+ ### seeFileContentsEqualReferenceFile
92
+
93
+ Checks that contents of the file found by `seeFile` equal to contents of the file at `pathToReferenceFile`.
94
+
95
+ #### Parameters
96
+
97
+ - `pathToReferenceFile` **[string][1]**
98
+ - `encoding` **[string][1]**
99
+ - `encodingReference` **[string][1]**
100
+
101
+ ### seeFileNameMatching
102
+
103
+ Checks that file with a name including given text exists in the current directory.
104
+
105
+ ```js
106
+ I.handleDownloads();
107
+ I.click('Download as PDF');
108
+ I.amInPath('output/downloads');
109
+ I.seeFileNameMatching('.pdf');
110
+ ```
111
+
112
+ #### Parameters
113
+
114
+ - `text` **[string][1]**
115
+
116
+ ### seeInThisFile
117
+
118
+ Checks that file found by `seeFile` includes a text.
119
+
120
+ #### Parameters
121
+
122
+ - `text` **[string][1]**
123
+ - `encoding` **[string][1]**
124
+
125
+ ### waitForFile
126
+
127
+ Waits for the file to be present in the current directory.
128
+
129
+ ```js
130
+ I.handleDownloads('downloads/largeFilesName.txt');
131
+ I.click('Download large File');
132
+ I.amInPath('output/downloads');
133
+ I.waitForFile('largeFilesName.txt', 10); // wait 10 seconds for file
134
+ ```
135
+
136
+ #### Parameters
137
+
138
+ - `name` **[string][1]**
139
+ - `sec` **[number][2]** seconds to wait
140
+
141
+ ### writeToFile
142
+
143
+ Writes text to file
144
+
145
+ #### Parameters
146
+
147
+ - `name` **[string][1]**
148
+ - `text` **[string][1]**
149
+
150
+ [1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
151
+
152
+ [2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
@@ -0,0 +1,151 @@
1
+ ---
2
+ permalink: /helpers/GraphQL
3
+ editLink: false
4
+ sidebar: auto
5
+ title: GraphQL
6
+ ---
7
+
8
+ <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
9
+
10
+ ## GraphQL
11
+
12
+ **Extends Helper**
13
+
14
+ GraphQL helper allows to send additional requests to a GraphQl endpoint during acceptance tests.
15
+ [Axios][1] library is used to perform requests.
16
+
17
+ ## Configuration
18
+
19
+ - endpoint: GraphQL base URL
20
+ - timeout: timeout for requests in milliseconds. 10000ms by default
21
+ - defaultHeaders: a list of default headers
22
+ - onRequest: a async function which can update request object.
23
+
24
+ ## Example
25
+
26
+ ```js
27
+ GraphQL: {
28
+ endpoint: 'http://site.com/graphql/',
29
+ onRequest: (request) => {
30
+ request.headers.auth = '123';
31
+ }
32
+ }
33
+ ```
34
+
35
+ ## Access From Helpers
36
+
37
+ Send GraphQL requests by accessing `_executeQuery` method:
38
+
39
+ ```js
40
+ this.helpers['GraphQL']._executeQuery({
41
+ url,
42
+ data,
43
+ });
44
+ ```
45
+
46
+ ## Methods
47
+
48
+ ### Parameters
49
+
50
+ - `config`
51
+
52
+ ### _executeQuery
53
+
54
+ Executes query via axios call
55
+
56
+ #### Parameters
57
+
58
+ - `request` **[object][2]**
59
+
60
+ ### _prepareGraphQLRequest
61
+
62
+ Prepares request for axios call
63
+
64
+ #### Parameters
65
+
66
+ - `operation` **[object][2]**
67
+ - `headers` **[object][2]**
68
+
69
+ Returns **[object][2]** graphQLRequest
70
+
71
+ ### amBearerAuthenticated
72
+
73
+ Adds a header for Bearer authentication
74
+
75
+ ```js
76
+ // we use secret function to hide token from logs
77
+ I.amBearerAuthenticated(secret('heregoestoken'))
78
+ ```
79
+
80
+ #### Parameters
81
+
82
+ - `accessToken` **([string][3] | CodeceptJS.Secret)** Bearer access token
83
+
84
+ ### haveRequestHeaders
85
+
86
+ Sets request headers for all requests of this test
87
+
88
+ #### Parameters
89
+
90
+ - `headers` **[object][2]** headers list
91
+
92
+ ### sendMutation
93
+
94
+ Send query to GraphQL endpoint over http
95
+
96
+ ```js
97
+ I.sendMutation(`
98
+ mutation createUser($user: UserInput!) {
99
+ createUser(user: $user) {
100
+ id
101
+ name
102
+ email
103
+ }
104
+ }
105
+ `,
106
+ { user: {
107
+ name: 'John Doe',
108
+ email: 'john@xmail.com'
109
+ }
110
+ },
111
+ });
112
+ ```
113
+
114
+ #### Parameters
115
+
116
+ - `mutation` **[String][3]**
117
+ - `variables` **[object][2]?** that may go along with the mutation
118
+ - `options` **[object][2]?** are additional query options
119
+ - `headers` **[object][2]?**
120
+
121
+ Returns **any** Promise<any>
122
+
123
+ ### sendQuery
124
+
125
+ Send query to GraphQL endpoint over http.
126
+ Returns a response as a promise.
127
+
128
+ ```js
129
+ const response = await I.sendQuery('{ users { name email }}');
130
+ // with variables
131
+ const response = await I.sendQuery(
132
+ 'query getUser($id: ID) { user(id: $id) { name email }}',
133
+ { id: 1 },
134
+ )
135
+ const user = response.data.data;
136
+ ```
137
+
138
+ #### Parameters
139
+
140
+ - `query` **[String][3]**
141
+ - `variables` **[object][2]?** that may go along with the query
142
+ - `options` **[object][2]?** are additional query options
143
+ - `headers` **[object][2]?**
144
+
145
+ Returns **any** Promise<any>
146
+
147
+ [1]: https://github.com/axios/axios
148
+
149
+ [2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
150
+
151
+ [3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String