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,344 +0,0 @@
1
- const axios = require('axios').default;
2
- const Helper = require('@codeceptjs/helper');
3
- const Secret = require('../secret');
4
-
5
- const { beautify } = require('../utils');
6
-
7
- /**
8
- * ## Configuration
9
- *
10
- * @typedef RESTConfig
11
- * @type {object}
12
- * @prop {string} [endpoint] - API base URL
13
- * @prop {boolean} [prettyPrintJson=false] - pretty print json for response/request on console logs
14
- * @prop {number} [timeout=1000] - timeout for requests in milliseconds. 10000ms by default
15
- * @prop {object} [defaultHeaders] - a list of default headers
16
- * @prop {function} [onRequest] - a async function which can update request object.
17
- * @prop {function} [onResponse] - a async function which can update response object.
18
- * @prop {number} [maxUploadFileSize] - set the max content file size in MB when performing api calls.
19
- */
20
- const config = {};
21
-
22
- /**
23
- * REST helper allows to send additional requests to the REST API during acceptance tests.
24
- * [Axios](https://github.com/axios/axios) library is used to perform requests.
25
- *
26
- * <!-- configuration -->
27
- *
28
- * ## Example
29
- *
30
- * ```js
31
- *{
32
- * helpers: {
33
- * REST: {
34
- * endpoint: 'http://site.com/api',
35
- * prettyPrintJson: true,
36
- * onRequest: (request) => {
37
- * request.headers.auth = '123';
38
- * }
39
- * }
40
- * }
41
- *}
42
- * ```
43
- *
44
- * ## Access From Helpers
45
- *
46
- * Send REST requests by accessing `_executeRequest` method:
47
- *
48
- * ```js
49
- * this.helpers['REST']._executeRequest({
50
- * url,
51
- * data,
52
- * });
53
- * ```
54
- *
55
- * ## Methods
56
- */
57
- class REST extends Helper {
58
- constructor(config) {
59
- super(config);
60
- this.options = {
61
- timeout: 10000,
62
- defaultHeaders: {},
63
- endpoint: '',
64
- prettyPrintJson: false,
65
- onRequest: null,
66
- onResponse: null,
67
- };
68
-
69
- if (this.options.maxContentLength) {
70
- const maxContentLength = this.options.maxUploadFileSize * 1024 * 1024;
71
- this.options.maxContentLength = maxContentLength;
72
- this.options.maxBodyLength = maxContentLength;
73
- }
74
-
75
- this.options = { ...this.options, ...config };
76
- this.headers = { ...this.options.defaultHeaders };
77
- this.axios = axios.create();
78
- this.axios.defaults.headers = this.options.defaultHeaders;
79
- }
80
-
81
- static _config() {
82
- return [
83
- { name: 'endpoint', message: 'Endpoint of API you are going to test', default: 'http://localhost:3000/api' },
84
- ];
85
- }
86
-
87
- static _checkRequirements() {
88
- try {
89
- require('axios');
90
- } catch (e) {
91
- return ['axios'];
92
- }
93
- }
94
-
95
- _before() {
96
- this.headers = { ...this.options.defaultHeaders };
97
- }
98
-
99
- /**
100
- * Sets request headers for all requests of this test
101
- *
102
- * @param {object} headers headers list
103
- */
104
- haveRequestHeaders(headers) {
105
- this.headers = { ...this.headers, ...headers };
106
- }
107
-
108
- /**
109
- * Adds a header for Bearer authentication
110
- *
111
- * ```js
112
- * // we use secret function to hide token from logs
113
- * I.amBearerAuthenticated(secret('heregoestoken'))
114
- * ```
115
- *
116
- * @param {string | CodeceptJS.Secret} accessToken Bearer access token
117
- */
118
- amBearerAuthenticated(accessToken) {
119
- this.haveRequestHeaders({ Authorization: `Bearer ${accessToken}` });
120
- }
121
-
122
- /**
123
- * Executes axios request
124
- *
125
- * @param {*} request
126
- *
127
- * @returns {Promise<*>} response
128
- */
129
- async _executeRequest(request) {
130
- // Add custom headers. They can be set by amBearerAuthenticated() or haveRequestHeaders()
131
- request.headers = { ...this.headers, ...request.headers };
132
-
133
- const _debugRequest = { ...request };
134
- this.axios.defaults.timeout = request.timeout || this.options.timeout;
135
-
136
- if (this.headers && this.headers.auth) {
137
- request.auth = this.headers.auth;
138
- }
139
-
140
- if (typeof request.data === 'object') {
141
- const returnedValue = {};
142
- for (const [key, value] of Object.entries(request.data)) {
143
- returnedValue[key] = value;
144
- if (value instanceof Secret) returnedValue[key] = value.getMasked();
145
- }
146
- _debugRequest.data = returnedValue;
147
- }
148
-
149
- if (request.data instanceof Secret) {
150
- _debugRequest.data = '*****';
151
- request.data = (typeof request.data === 'object' && !(request.data instanceof Secret)) ? { ...request.data.toString() } : request.data.toString();
152
- }
153
-
154
- if ((typeof request.data) === 'string') {
155
- if (!request.headers || !request.headers['Content-Type']) {
156
- request.headers = { ...request.headers, ...{ 'Content-Type': 'application/x-www-form-urlencoded' } };
157
- }
158
- }
159
-
160
- if (this.config.onRequest) {
161
- await this.config.onRequest(request);
162
- }
163
-
164
- this.options.prettyPrintJson ? this.debugSection('Request', beautify(JSON.stringify(_debugRequest))) : this.debugSection('Request', JSON.stringify(_debugRequest));
165
-
166
- let response;
167
- try {
168
- response = await this.axios(request);
169
- } catch (err) {
170
- if (!err.response) throw err;
171
- this.debugSection('Response', `Response error. Status code: ${err.response.status}`);
172
- response = err.response;
173
- }
174
- if (this.config.onResponse) {
175
- await this.config.onResponse(response);
176
- }
177
- this.options.prettyPrintJson ? this.debugSection('Response', beautify(JSON.stringify(response.data))) : this.debugSection('Response', JSON.stringify(response.data));
178
- return response;
179
- }
180
-
181
- /**
182
- * Generates url based on format sent (takes endpoint + url if latter lacks 'http')
183
- *
184
- * @param {*} url
185
- */
186
- _url(url) {
187
- return /^\w+\:\/\//.test(url) ? url : this.options.endpoint + url;
188
- }
189
-
190
- /**
191
- * Set timeout for the request
192
- *
193
- * ```js
194
- * I.setRequestTimeout(10000); // In milliseconds
195
- * ```
196
- *
197
- * @param {number} newTimeout - timeout in milliseconds
198
- */
199
- setRequestTimeout(newTimeout) {
200
- this.options.timeout = newTimeout;
201
- }
202
-
203
- /**
204
- * Send GET request to REST API
205
- *
206
- * ```js
207
- * I.sendGetRequest('/api/users.json');
208
- * ```
209
- *
210
- * @param {*} url
211
- * @param {object} [headers={}] - the headers object to be sent. By default, it is sent as an empty object
212
- *
213
- * @returns {Promise<*>} response
214
- */
215
- async sendGetRequest(url, headers = {}) {
216
- const request = {
217
- baseURL: this._url(url),
218
- headers,
219
- };
220
- return this._executeRequest(request);
221
- }
222
-
223
- /**
224
- * Sends POST request to API.
225
- *
226
- * ```js
227
- * I.sendPostRequest('/api/users.json', { "email": "user@user.com" });
228
- *
229
- * // To mask the payload in logs
230
- * I.sendPostRequest('/api/users.json', secret({ "email": "user@user.com" }));
231
- *
232
- * ```
233
- *
234
- * @param {*} url
235
- * @param {*} [payload={}] - the payload to be sent. By default, it is sent as an empty object
236
- * @param {object} [headers={}] - the headers object to be sent. By default, it is sent as an empty object
237
- *
238
- * @returns {Promise<*>} response
239
- */
240
- async sendPostRequest(url, payload = {}, headers = {}) {
241
- const request = {
242
- baseURL: this._url(url),
243
- method: 'POST',
244
- data: payload,
245
- headers,
246
- };
247
-
248
- if (this.options.maxContentLength) {
249
- request.maxContentLength = this.options.maxContentLength;
250
- request.maxBodyLength = this.options.maxContentLength;
251
- }
252
-
253
- return this._executeRequest(request);
254
- }
255
-
256
- /**
257
- * Sends PATCH request to API.
258
- *
259
- * ```js
260
- * I.sendPatchRequest('/api/users.json', { "email": "user@user.com" });
261
- *
262
- * // To mask the payload in logs
263
- * I.sendPatchRequest('/api/users.json', secret({ "email": "user@user.com" }));
264
- *
265
- * ```
266
- *
267
- * @param {string} url
268
- * @param {*} [payload={}] - the payload to be sent. By default it is sent as an empty object
269
- * @param {object} [headers={}] - the headers object to be sent. By default it is sent as an empty object
270
- *
271
- * @returns {Promise<*>} response
272
- */
273
- async sendPatchRequest(url, payload = {}, headers = {}) {
274
- const request = {
275
- baseURL: this._url(url),
276
- method: 'PATCH',
277
- data: payload,
278
- headers,
279
- };
280
-
281
- if (this.options.maxContentLength) {
282
- request.maxContentLength = this.options.maxContentLength;
283
- request.maxBodyLength = this.options.maxBodyLength;
284
- }
285
-
286
- return this._executeRequest(request);
287
- }
288
-
289
- /**
290
- * Sends PUT request to API.
291
- *
292
- * ```js
293
- * I.sendPutRequest('/api/users.json', { "email": "user@user.com" });
294
- *
295
- * // To mask the payload in logs
296
- * I.sendPutRequest('/api/users.json', secret({ "email": "user@user.com" }));
297
- *
298
- * ```
299
- *
300
- * @param {string} url
301
- * @param {*} [payload={}] - the payload to be sent. By default it is sent as an empty object
302
- * @param {object} [headers={}] - the headers object to be sent. By default it is sent as an empty object
303
- *
304
- * @returns {Promise<*>} response
305
- */
306
- async sendPutRequest(url, payload = {}, headers = {}) {
307
- const request = {
308
- baseURL: this._url(url),
309
- method: 'PUT',
310
- data: payload,
311
- headers,
312
- };
313
-
314
- if (this.options.maxContentLength) {
315
- request.maxContentLength = this.options.maxContentLength;
316
- request.maxBodyLength = this.options.maxBodyLength;
317
- }
318
-
319
- return this._executeRequest(request);
320
- }
321
-
322
- /**
323
- * Sends DELETE request to API.
324
- *
325
- * ```js
326
- * I.sendDeleteRequest('/api/users/1');
327
- * ```
328
- *
329
- * @param {*} url
330
- * @param {object} [headers={}] - the headers object to be sent. By default, it is sent as an empty object
331
- *
332
- * @returns {Promise<*>} response
333
- */
334
- async sendDeleteRequest(url, headers = {}) {
335
- const request = {
336
- baseURL: this._url(url),
337
- method: 'DELETE',
338
- headers,
339
- };
340
-
341
- return this._executeRequest(request);
342
- }
343
- }
344
- module.exports = REST;