codeceptjs 3.5.10 → 3.5.12-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 (225) hide show
  1. package/README.md +3 -3
  2. package/lib/command/run-multiple.js +3 -1
  3. package/lib/command/run-workers.js +32 -1
  4. package/lib/command/workers/runTests.js +18 -2
  5. package/lib/helper/Expect.js +33 -33
  6. package/lib/helper/Playwright.js +49 -26
  7. package/lib/helper/Puppeteer.js +41 -19
  8. package/lib/helper/WebDriver.js +155 -48
  9. package/lib/helper/extras/PlaywrightReactVueLocator.js +38 -0
  10. package/lib/locator.js +17 -4
  11. package/lib/plugin/retryFailedStep.js +6 -2
  12. package/lib/plugin/retryTo.js +2 -2
  13. package/lib/plugin/tryTo.js +5 -4
  14. package/package.json +25 -22
  15. package/typings/index.d.ts +8 -5
  16. package/typings/promiseBasedTypes.d.ts +203 -75
  17. package/typings/types.d.ts +213 -145
  18. package/docs/advanced.md +0 -351
  19. package/docs/ai.md +0 -248
  20. package/docs/api.md +0 -323
  21. package/docs/basics.md +0 -979
  22. package/docs/bdd.md +0 -539
  23. package/docs/best.md +0 -237
  24. package/docs/books.md +0 -37
  25. package/docs/bootstrap.md +0 -135
  26. package/docs/build/ApiDataFactory.js +0 -410
  27. package/docs/build/Appium.js +0 -2027
  28. package/docs/build/Expect.js +0 -422
  29. package/docs/build/FileSystem.js +0 -228
  30. package/docs/build/GraphQL.js +0 -229
  31. package/docs/build/GraphQLDataFactory.js +0 -309
  32. package/docs/build/JSONResponse.js +0 -338
  33. package/docs/build/Mochawesome.js +0 -71
  34. package/docs/build/Nightmare.js +0 -2152
  35. package/docs/build/OpenAI.js +0 -126
  36. package/docs/build/Playwright.js +0 -5078
  37. package/docs/build/Protractor.js +0 -2706
  38. package/docs/build/Puppeteer.js +0 -3874
  39. package/docs/build/REST.js +0 -344
  40. package/docs/build/TestCafe.js +0 -2125
  41. package/docs/build/WebDriver.js +0 -4124
  42. package/docs/changelog.md +0 -2572
  43. package/docs/commands.md +0 -266
  44. package/docs/community-helpers.md +0 -58
  45. package/docs/configuration.md +0 -157
  46. package/docs/continuous-integration.md +0 -22
  47. package/docs/custom-helpers.md +0 -306
  48. package/docs/data.md +0 -379
  49. package/docs/detox.md +0 -235
  50. package/docs/docker.md +0 -136
  51. package/docs/email.md +0 -183
  52. package/docs/examples.md +0 -149
  53. package/docs/helpers/ApiDataFactory.md +0 -266
  54. package/docs/helpers/Appium.md +0 -1374
  55. package/docs/helpers/Detox.md +0 -586
  56. package/docs/helpers/Expect.md +0 -275
  57. package/docs/helpers/FileSystem.md +0 -152
  58. package/docs/helpers/GraphQL.md +0 -151
  59. package/docs/helpers/GraphQLDataFactory.md +0 -226
  60. package/docs/helpers/JSONResponse.md +0 -254
  61. package/docs/helpers/Mochawesome.md +0 -8
  62. package/docs/helpers/MockRequest.md +0 -377
  63. package/docs/helpers/Nightmare.md +0 -1305
  64. package/docs/helpers/OpenAI.md +0 -70
  65. package/docs/helpers/Playwright.md +0 -2706
  66. package/docs/helpers/Polly.md +0 -44
  67. package/docs/helpers/Protractor.md +0 -1769
  68. package/docs/helpers/Puppeteer-firefox.md +0 -86
  69. package/docs/helpers/Puppeteer.md +0 -2291
  70. package/docs/helpers/REST.md +0 -218
  71. package/docs/helpers/TestCafe.md +0 -1321
  72. package/docs/helpers/WebDriver.md +0 -2460
  73. package/docs/hooks.md +0 -340
  74. package/docs/index.md +0 -111
  75. package/docs/installation.md +0 -75
  76. package/docs/internal-api.md +0 -266
  77. package/docs/locators.md +0 -331
  78. package/docs/mobile-react-native-locators.md +0 -67
  79. package/docs/mobile.md +0 -338
  80. package/docs/pageobjects.md +0 -291
  81. package/docs/parallel.md +0 -400
  82. package/docs/playwright.md +0 -632
  83. package/docs/plugins.md +0 -1259
  84. package/docs/puppeteer.md +0 -316
  85. package/docs/quickstart.md +0 -162
  86. package/docs/react.md +0 -69
  87. package/docs/reports.md +0 -392
  88. package/docs/secrets.md +0 -36
  89. package/docs/shadow.md +0 -68
  90. package/docs/shared/keys.mustache +0 -31
  91. package/docs/shared/react.mustache +0 -1
  92. package/docs/testcafe.md +0 -174
  93. package/docs/translation.md +0 -247
  94. package/docs/tutorial.md +0 -271
  95. package/docs/typescript.md +0 -180
  96. package/docs/ui.md +0 -59
  97. package/docs/videos.md +0 -28
  98. package/docs/visual.md +0 -202
  99. package/docs/vue.md +0 -121
  100. package/docs/webapi/amOnPage.mustache +0 -11
  101. package/docs/webapi/appendField.mustache +0 -11
  102. package/docs/webapi/attachFile.mustache +0 -12
  103. package/docs/webapi/blur.mustache +0 -18
  104. package/docs/webapi/checkOption.mustache +0 -13
  105. package/docs/webapi/clearCookie.mustache +0 -9
  106. package/docs/webapi/clearField.mustache +0 -9
  107. package/docs/webapi/click.mustache +0 -25
  108. package/docs/webapi/clickLink.mustache +0 -8
  109. package/docs/webapi/closeCurrentTab.mustache +0 -7
  110. package/docs/webapi/closeOtherTabs.mustache +0 -8
  111. package/docs/webapi/dontSee.mustache +0 -11
  112. package/docs/webapi/dontSeeCheckboxIsChecked.mustache +0 -10
  113. package/docs/webapi/dontSeeCookie.mustache +0 -8
  114. package/docs/webapi/dontSeeCurrentUrlEquals.mustache +0 -10
  115. package/docs/webapi/dontSeeElement.mustache +0 -8
  116. package/docs/webapi/dontSeeElementInDOM.mustache +0 -8
  117. package/docs/webapi/dontSeeInCurrentUrl.mustache +0 -4
  118. package/docs/webapi/dontSeeInField.mustache +0 -11
  119. package/docs/webapi/dontSeeInSource.mustache +0 -8
  120. package/docs/webapi/dontSeeInTitle.mustache +0 -8
  121. package/docs/webapi/doubleClick.mustache +0 -13
  122. package/docs/webapi/downloadFile.mustache +0 -12
  123. package/docs/webapi/dragAndDrop.mustache +0 -9
  124. package/docs/webapi/dragSlider.mustache +0 -11
  125. package/docs/webapi/executeAsyncScript.mustache +0 -24
  126. package/docs/webapi/executeScript.mustache +0 -26
  127. package/docs/webapi/fillField.mustache +0 -16
  128. package/docs/webapi/focus.mustache +0 -13
  129. package/docs/webapi/forceClick.mustache +0 -28
  130. package/docs/webapi/forceRightClick.mustache +0 -18
  131. package/docs/webapi/grabAllWindowHandles.mustache +0 -7
  132. package/docs/webapi/grabAttributeFrom.mustache +0 -10
  133. package/docs/webapi/grabAttributeFromAll.mustache +0 -9
  134. package/docs/webapi/grabBrowserLogs.mustache +0 -9
  135. package/docs/webapi/grabCookie.mustache +0 -11
  136. package/docs/webapi/grabCssPropertyFrom.mustache +0 -11
  137. package/docs/webapi/grabCssPropertyFromAll.mustache +0 -10
  138. package/docs/webapi/grabCurrentUrl.mustache +0 -9
  139. package/docs/webapi/grabCurrentWindowHandle.mustache +0 -6
  140. package/docs/webapi/grabDataFromPerformanceTiming.mustache +0 -20
  141. package/docs/webapi/grabElementBoundingRect.mustache +0 -20
  142. package/docs/webapi/grabGeoLocation.mustache +0 -8
  143. package/docs/webapi/grabHTMLFrom.mustache +0 -10
  144. package/docs/webapi/grabHTMLFromAll.mustache +0 -9
  145. package/docs/webapi/grabNumberOfOpenTabs.mustache +0 -8
  146. package/docs/webapi/grabNumberOfVisibleElements.mustache +0 -9
  147. package/docs/webapi/grabPageScrollPosition.mustache +0 -8
  148. package/docs/webapi/grabPopupText.mustache +0 -5
  149. package/docs/webapi/grabSource.mustache +0 -8
  150. package/docs/webapi/grabTextFrom.mustache +0 -10
  151. package/docs/webapi/grabTextFromAll.mustache +0 -9
  152. package/docs/webapi/grabTitle.mustache +0 -8
  153. package/docs/webapi/grabValueFrom.mustache +0 -9
  154. package/docs/webapi/grabValueFromAll.mustache +0 -8
  155. package/docs/webapi/grabWebElement.mustache +0 -9
  156. package/docs/webapi/grabWebElements.mustache +0 -9
  157. package/docs/webapi/moveCursorTo.mustache +0 -12
  158. package/docs/webapi/openNewTab.mustache +0 -7
  159. package/docs/webapi/pressKey.mustache +0 -12
  160. package/docs/webapi/pressKeyDown.mustache +0 -12
  161. package/docs/webapi/pressKeyUp.mustache +0 -12
  162. package/docs/webapi/pressKeyWithKeyNormalization.mustache +0 -60
  163. package/docs/webapi/refreshPage.mustache +0 -6
  164. package/docs/webapi/resizeWindow.mustache +0 -6
  165. package/docs/webapi/rightClick.mustache +0 -14
  166. package/docs/webapi/saveElementScreenshot.mustache +0 -10
  167. package/docs/webapi/saveScreenshot.mustache +0 -12
  168. package/docs/webapi/say.mustache +0 -10
  169. package/docs/webapi/scrollIntoView.mustache +0 -11
  170. package/docs/webapi/scrollPageToBottom.mustache +0 -6
  171. package/docs/webapi/scrollPageToTop.mustache +0 -6
  172. package/docs/webapi/scrollTo.mustache +0 -12
  173. package/docs/webapi/see.mustache +0 -11
  174. package/docs/webapi/seeAttributesOnElements.mustache +0 -9
  175. package/docs/webapi/seeCheckboxIsChecked.mustache +0 -10
  176. package/docs/webapi/seeCookie.mustache +0 -8
  177. package/docs/webapi/seeCssPropertiesOnElements.mustache +0 -9
  178. package/docs/webapi/seeCurrentUrlEquals.mustache +0 -11
  179. package/docs/webapi/seeElement.mustache +0 -8
  180. package/docs/webapi/seeElementInDOM.mustache +0 -8
  181. package/docs/webapi/seeInCurrentUrl.mustache +0 -8
  182. package/docs/webapi/seeInField.mustache +0 -12
  183. package/docs/webapi/seeInPopup.mustache +0 -8
  184. package/docs/webapi/seeInSource.mustache +0 -7
  185. package/docs/webapi/seeInTitle.mustache +0 -8
  186. package/docs/webapi/seeNumberOfElements.mustache +0 -11
  187. package/docs/webapi/seeNumberOfVisibleElements.mustache +0 -10
  188. package/docs/webapi/seeTextEquals.mustache +0 -9
  189. package/docs/webapi/seeTitleEquals.mustache +0 -8
  190. package/docs/webapi/selectOption.mustache +0 -21
  191. package/docs/webapi/setCookie.mustache +0 -16
  192. package/docs/webapi/setGeoLocation.mustache +0 -12
  193. package/docs/webapi/switchTo.mustache +0 -9
  194. package/docs/webapi/switchToNextTab.mustache +0 -10
  195. package/docs/webapi/switchToPreviousTab.mustache +0 -10
  196. package/docs/webapi/type.mustache +0 -21
  197. package/docs/webapi/uncheckOption.mustache +0 -13
  198. package/docs/webapi/wait.mustache +0 -8
  199. package/docs/webapi/waitForClickable.mustache +0 -11
  200. package/docs/webapi/waitForDetached.mustache +0 -10
  201. package/docs/webapi/waitForElement.mustache +0 -11
  202. package/docs/webapi/waitForEnabled.mustache +0 -6
  203. package/docs/webapi/waitForFunction.mustache +0 -17
  204. package/docs/webapi/waitForInvisible.mustache +0 -10
  205. package/docs/webapi/waitForText.mustache +0 -13
  206. package/docs/webapi/waitForValue.mustache +0 -10
  207. package/docs/webapi/waitForVisible.mustache +0 -10
  208. package/docs/webapi/waitInUrl.mustache +0 -9
  209. package/docs/webapi/waitNumberOfVisibleElements.mustache +0 -10
  210. package/docs/webapi/waitToHide.mustache +0 -10
  211. package/docs/webapi/waitUrlEquals.mustache +0 -10
  212. package/docs/webdriver.md +0 -655
  213. package/docs/wiki/Books-&-Posts.md +0 -27
  214. package/docs/wiki/Community-Helpers-&-Plugins.md +0 -53
  215. package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +0 -61
  216. package/docs/wiki/Examples.md +0 -145
  217. package/docs/wiki/Google-Summer-of-Code-(GSoC)-2020.md +0 -68
  218. package/docs/wiki/Home.md +0 -16
  219. package/docs/wiki/Migration-to-Appium-v2---CodeceptJS.md +0 -83
  220. package/docs/wiki/Release-Process.md +0 -24
  221. package/docs/wiki/Roadmap.md +0 -23
  222. package/docs/wiki/Tests.md +0 -1393
  223. package/docs/wiki/Upgrading-to-CodeceptJS-3.md +0 -153
  224. package/docs/wiki/Videos.md +0 -19
  225. package/lib/helper/extras/PlaywrightReact.js +0 -9
@@ -1,226 +0,0 @@
1
- ---
2
- permalink: /helpers/GraphQLDataFactory
3
- editLink: false
4
- sidebar: auto
5
- title: GraphQLDataFactory
6
- ---
7
-
8
- <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
9
-
10
- ## GraphQLDataFactory
11
-
12
- **Extends Helper**
13
-
14
- Helper for managing remote data using GraphQL queries.
15
- Uses data generators like [rosie][1] or factory girl to create new record.
16
-
17
- By defining a factory you set the rules of how data is generated.
18
- This data will be saved on server via GraphQL queries and deleted in the end of a test.
19
-
20
- ## Use Case
21
-
22
- Acceptance tests interact with a websites using UI and real browser.
23
- There is no way to create data for a specific test other than from user interface.
24
- That makes tests slow and fragile. Instead of testing a single feature you need to follow all creation/removal process.
25
-
26
- This helper solves this problem.
27
- If a web application has GraphQL support, it can be used to create and delete test records.
28
- By combining GraphQL with Factories you can easily create records for tests:
29
-
30
- ```js
31
- I.mutateData('createUser', { name: 'davert', email: 'davert@mail.com' });
32
- let user = await I.mutateData('createUser', { name: 'davert'});
33
- I.mutateMultiple('createPost', 3, {post_id: user.id});
34
- ```
35
-
36
- To make this work you need
37
-
38
- 1. GraphQL endpoint which allows to perform create / delete requests and
39
- 2. define data generation rules
40
-
41
- ### Setup
42
-
43
- Install [Rosie][1] and [Faker][2] libraries.
44
-
45
- ```sh
46
- npm i rosie @faker-js/faker --save-dev
47
- ```
48
-
49
- Create a factory file for a resource.
50
-
51
- See the example for Users factories:
52
-
53
- ```js
54
- // tests/factories/users.js
55
-
56
- const { Factory } = require('rosie').Factory;
57
- const { faker } = require('@faker-js/faker');
58
-
59
- // Used with a constructor function passed to Factory, so that the final build
60
- // object matches the necessary pattern to be sent as the variables object.
61
- module.exports = new Factory((buildObj) => ({
62
- input: { ...buildObj },
63
- }))
64
- // 'attr'-id can be left out depending on the GraphQl resolvers
65
- .attr('name', () => faker.name.findName())
66
- .attr('email', () => faker.interact.email())
67
- ```
68
-
69
- For more options see [rosie documentation][1].
70
-
71
- Then configure GraphQLDataHelper to match factories and GraphQL schema:
72
-
73
- ### Configuration
74
-
75
- GraphQLDataFactory has following config options:
76
-
77
- - `endpoint`: URL for the GraphQL server.
78
- - `cleanup` (default: true): should inserted records be deleted up after tests
79
- - `factories`: list of defined factories
80
- - `headers`: list of headers
81
- - `GraphQL`: configuration for GraphQL requests.
82
-
83
- See the example:
84
-
85
- ```js
86
- GraphQLDataFactory: {
87
- endpoint: "http://user.com/graphql",
88
- cleanup: true,
89
- headers: {
90
- 'Content-Type': 'application/json',
91
- 'Accept': 'application/json',
92
- },
93
- factories: {
94
- createUser: {
95
- query: 'mutation createUser($input: UserInput!) { createUser(input: $input) { id name }}',
96
- factory: './factories/users',
97
- revert: (data) => ({
98
- query: 'mutation deleteUser($id: ID!) { deleteUser(id: $id) }',
99
- variables: { id : data.id},
100
- }),
101
- },
102
- }
103
- }
104
- ```
105
-
106
- It is required to set GraphQL `endpoint` which is the URL to which all the queries go to.
107
- Factory file is expected to be passed via `factory` option.
108
-
109
- This Helper uses [GraphQL][3] helper and accepts its configuration in "GraphQL" section.
110
- For instance, to set timeout you should add:
111
-
112
- ```js
113
- "GraphQLDataFactory": {
114
- "GraphQL": {
115
- "timeout": "100000",
116
- }
117
- }
118
- ```
119
-
120
- ### Factory
121
-
122
- Factory contains operations -
123
-
124
- - `operation`: The operation/mutation that needs to be performed for creating a record in the backend.
125
-
126
- Each operation must have the following:
127
-
128
- - `query`: The mutation(query) string. It is expected to use variables to send data with the query.
129
- - `factory`: The path to factory file. The object built by the factory in this file will be passed
130
- as the 'variables' object to go along with the mutation.
131
- - `revert`: A function called with the data returned when an item is created. The object returned by
132
- this function is will be used to later delete the items created. So, make sure RELEVANT DATA IS RETURNED
133
- when a record is created by a mutation.
134
-
135
- ### Requests
136
-
137
- Requests can be updated on the fly by using `onRequest` function. For instance, you can pass in current session from a cookie.
138
-
139
- ```js
140
- onRequest: async (request) => {
141
- // using global codeceptjs instance
142
- let cookie = await codeceptjs.container.helpers('WebDriver').grabCookie('session');
143
- request.headers = { Cookie: `session=${cookie.value}` };
144
- }
145
- ```
146
-
147
- ### Responses
148
-
149
- By default `I.mutateData()` returns a promise with created data as specified in operation query string:
150
-
151
- ```js
152
- let client = await I.mutateData('createClient');
153
- ```
154
-
155
- Data of created records are collected and used in the end of a test for the cleanup.
156
-
157
- ## Methods
158
-
159
- ### Parameters
160
-
161
- - `config`
162
-
163
- ### _requestCreate
164
-
165
- Executes request to create a record to the GraphQL endpoint.
166
- Can be replaced from a custom helper.
167
-
168
- #### Parameters
169
-
170
- - `operation` **[string][4]**
171
- - `variables` **any** to be sent along with the query
172
-
173
- ### _requestDelete
174
-
175
- Executes request to delete a record to the GraphQL endpoint.
176
- Can be replaced from a custom helper.
177
-
178
- #### Parameters
179
-
180
- - `operation` **[string][4]**
181
- - `data` **any** of the record to be deleted.
182
-
183
- ### mutateData
184
-
185
- Generates a new record using factory, sends a GraphQL mutation to store it.
186
-
187
- ```js
188
- // create a user
189
- I.mutateData('createUser');
190
- // create user with defined email
191
- // and receive it when inside async function
192
- const user = await I.mutateData('createUser', { email: 'user@user.com'});
193
- ```
194
-
195
- #### Parameters
196
-
197
- - `operation` **[string][4]** to be performed
198
- - `params` **any** predefined parameters
199
-
200
- ### mutateMultiple
201
-
202
- Generates bunch of records and sends multiple GraphQL mutation requests to store them.
203
-
204
- ```js
205
- // create 3 users
206
- I.mutateMultiple('createUser', 3);
207
-
208
- // create 3 users of same age
209
- I.mutateMultiple('createUser', 3, { age: 25 });
210
- ```
211
-
212
- #### Parameters
213
-
214
- - `operation` **[string][4]**
215
- - `times` **[number][5]**
216
- - `params` **any**
217
-
218
- [1]: https://github.com/rosiejs/rosie
219
-
220
- [2]: https://www.npmjs.com/package/faker
221
-
222
- [3]: http://codecept.io/helpers/GraphQL/
223
-
224
- [4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
225
-
226
- [5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
@@ -1,254 +0,0 @@
1
- ---
2
- permalink: /helpers/JSONResponse
3
- editLink: false
4
- sidebar: auto
5
- title: JSONResponse
6
- ---
7
-
8
- <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
9
-
10
- ## JSONResponse
11
-
12
- **Extends Helper**
13
-
14
- This helper allows performing assertions on JSON responses paired with following helpers:
15
-
16
- - REST
17
- - GraphQL
18
- - Playwright
19
-
20
- It can check status codes, response data, response structure.
21
-
22
- ## Configuration
23
-
24
- - `requestHelper` - a helper which will perform requests. `REST` by default, also `Playwright` or `GraphQL` can be used. Custom helpers must have `onResponse` hook in their config, which will be executed when request is performed.
25
-
26
- ### Examples
27
-
28
- Zero-configuration when paired with REST:
29
-
30
- ```js
31
- // inside codecept.conf.js
32
- {
33
- helpers: {
34
- REST: {
35
- endpoint: 'http://site.com/api',
36
- },
37
- JSONResponse: {}
38
- }
39
- }
40
- ```
41
-
42
- Explicitly setting request helper if you use `makeApiRequest` of Playwright to perform requests and not paired REST:
43
-
44
- ```js
45
- // inside codecept.conf.js
46
- // ...
47
- helpers: {
48
- Playwright: {
49
- url: 'https://localhost',
50
- browser: 'chromium',
51
- },
52
- JSONResponse: {
53
- requestHelper: 'Playwright',
54
- }
55
- }
56
- ```
57
-
58
- ## Access From Helpers
59
-
60
- If you plan to add custom assertions it is recommended to create a helper that will retrieve response object from JSONResponse:
61
-
62
- ```js
63
- // inside custom helper
64
- const response = this.helpers.JSONResponse.response;
65
- ```
66
-
67
- ## Methods
68
-
69
- ### Parameters
70
-
71
- - `config`
72
-
73
- ### dontSeeResponseCodeIs
74
-
75
- Checks that response code is not equal to the provided one
76
-
77
- ```js
78
- I.dontSeeResponseCodeIs(500);
79
- ```
80
-
81
- #### Parameters
82
-
83
- - `code` **[number][1]**
84
-
85
- ### dontSeeResponseContainsJson
86
-
87
- Checks for deep inclusion of a provided json in a response data.
88
-
89
- ```js
90
- // response.data == { data: { user: 1 } }
91
-
92
- I.dontSeeResponseContainsJson({ user: 2 });
93
- ```
94
-
95
- If an array is received, checks that no element of array contains json:
96
-
97
- ```js
98
- // response.data == [{ user: 1 }, { user: 3 }]
99
-
100
- I.dontSeeResponseContainsJson({ user: 2 });
101
- ```
102
-
103
- #### Parameters
104
-
105
- - `json` **[object][2]**
106
-
107
- ### seeResponseCodeIs
108
-
109
- Checks that response code is equal to the provided one
110
-
111
- ```js
112
- I.seeResponseCodeIs(200);
113
- ```
114
-
115
- #### Parameters
116
-
117
- - `code` **[number][1]**
118
-
119
- ### seeResponseCodeIsClientError
120
-
121
- Checks that the response code is 4xx
122
-
123
- ### seeResponseCodeIsRedirection
124
-
125
- Checks that the response code is 3xx
126
-
127
- ### seeResponseCodeIsServerError
128
-
129
- Checks that the response code is 5xx
130
-
131
- ### seeResponseCodeIsSuccessful
132
-
133
- Checks that the response code is 2xx
134
- Use it instead of seeResponseCodeIs(200) if server can return 204 instead.
135
-
136
- ```js
137
- I.seeResponseCodeIsSuccessful();
138
- ```
139
-
140
- ### seeResponseContainsJson
141
-
142
- Checks for deep inclusion of a provided json in a response data.
143
-
144
- ```js
145
- // response.data == { user: { name: 'jon', email: 'jon@doe.com' } }
146
-
147
- I.seeResponseContainsJson({ user: { email: 'jon@doe.com' } });
148
- ```
149
-
150
- If an array is received, checks that at least one element contains JSON
151
-
152
- ```js
153
- // response.data == [{ user: { name: 'jon', email: 'jon@doe.com' } }]
154
-
155
- I.seeResponseContainsJson({ user: { email: 'jon@doe.com' } });
156
- ```
157
-
158
- #### Parameters
159
-
160
- - `json` **[object][2]**
161
-
162
- ### seeResponseContainsKeys
163
-
164
- Checks for deep inclusion of a provided json in a response data.
165
-
166
- ```js
167
- // response.data == { user: { name: 'jon', email: 'jon@doe.com' } }
168
-
169
- I.seeResponseContainsKeys(['user']);
170
- ```
171
-
172
- If an array is received, check is performed for each element of array:
173
-
174
- ```js
175
- // response.data == [{ user: 'jon' }, { user: 'matt'}]
176
-
177
- I.seeResponseContainsKeys(['user']);
178
- ```
179
-
180
- #### Parameters
181
-
182
- - `keys` **[array][3]**
183
-
184
- ### seeResponseEquals
185
-
186
- Checks that response data equals to expected:
187
-
188
- ```js
189
- // response.data is { error: 'Not allowed' }
190
-
191
- I.seeResponseEquals({ error: 'Not allowed' })
192
- ```
193
-
194
- #### Parameters
195
-
196
- - `resp` **[object][2]**
197
-
198
- ### seeResponseMatchesJsonSchema
199
-
200
- Validates JSON structure of response using [joi library][4].
201
- See [joi API][5] for complete reference on usage.
202
-
203
- Use pre-initialized joi instance by passing function callback:
204
-
205
- ```js
206
- // response.data is { name: 'jon', id: 1 }
207
-
208
- I.seeResponseMatchesJsonSchema(joi => {
209
- return joi.object({
210
- name: joi.string(),
211
- id: joi.number()
212
- })
213
- });
214
-
215
- // or pass a valid schema
216
- const joi = require('joi');
217
-
218
- I.seeResponseMatchesJsonSchema(joi.object({
219
- name: joi.string(),
220
- id: joi.number();
221
- });
222
- ```
223
-
224
- #### Parameters
225
-
226
- - `fnOrSchema` **any**
227
-
228
- ### seeResponseValidByCallback
229
-
230
- Executes a callback function passing in `response` object and chai assertions with `expect`
231
- Use it to perform custom checks of response data
232
-
233
- ```js
234
- I.seeResponseValidByCallback(({ data, status, expect }) => {
235
- expect(status).to.eql(200);
236
- expect(data).keys.to.include(['user', 'company']);
237
- });
238
- ```
239
-
240
- #### Parameters
241
-
242
- - `fn` **[function][6]**
243
-
244
- [1]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
245
-
246
- [2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
247
-
248
- [3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
249
-
250
- [4]: https://joi.dev
251
-
252
- [5]: https://joi.dev/api/
253
-
254
- [6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
@@ -1,8 +0,0 @@
1
- ---
2
- permalink: /helpers/Mochawesome
3
- editLink: false
4
- sidebar: auto
5
- title: Mochawesome
6
- ---
7
-
8
- <!-- Generated by documentation.js. Update this documentation by updating the source code. -->