codeceptjs 3.5.12-beta.2 → 3.5.12-beta.3
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.
- package/lib/locator.js +7 -12
- package/package.json +3 -5
- package/docs/advanced.md +0 -351
- package/docs/ai.md +0 -248
- package/docs/api.md +0 -323
- package/docs/basics.md +0 -979
- package/docs/bdd.md +0 -539
- package/docs/best.md +0 -237
- package/docs/books.md +0 -37
- package/docs/bootstrap.md +0 -135
- package/docs/build/ApiDataFactory.js +0 -410
- package/docs/build/Appium.js +0 -2027
- package/docs/build/Expect.js +0 -422
- package/docs/build/FileSystem.js +0 -228
- package/docs/build/GraphQL.js +0 -229
- package/docs/build/GraphQLDataFactory.js +0 -309
- package/docs/build/JSONResponse.js +0 -338
- package/docs/build/Mochawesome.js +0 -71
- package/docs/build/Nightmare.js +0 -2152
- package/docs/build/OpenAI.js +0 -126
- package/docs/build/Playwright.js +0 -5110
- package/docs/build/Protractor.js +0 -2706
- package/docs/build/Puppeteer.js +0 -3905
- package/docs/build/REST.js +0 -344
- package/docs/build/TestCafe.js +0 -2125
- package/docs/build/WebDriver.js +0 -4240
- package/docs/changelog.md +0 -2572
- package/docs/commands.md +0 -266
- package/docs/community-helpers.md +0 -58
- package/docs/configuration.md +0 -157
- package/docs/continuous-integration.md +0 -22
- package/docs/custom-helpers.md +0 -306
- package/docs/data.md +0 -379
- package/docs/detox.md +0 -235
- package/docs/docker.md +0 -136
- package/docs/email.md +0 -183
- package/docs/examples.md +0 -149
- package/docs/helpers/ApiDataFactory.md +0 -266
- package/docs/helpers/Appium.md +0 -1374
- package/docs/helpers/Detox.md +0 -586
- package/docs/helpers/Expect.md +0 -275
- package/docs/helpers/FileSystem.md +0 -152
- package/docs/helpers/GraphQL.md +0 -151
- package/docs/helpers/GraphQLDataFactory.md +0 -226
- package/docs/helpers/JSONResponse.md +0 -254
- package/docs/helpers/Mochawesome.md +0 -8
- package/docs/helpers/MockRequest.md +0 -377
- package/docs/helpers/Nightmare.md +0 -1305
- package/docs/helpers/OpenAI.md +0 -70
- package/docs/helpers/Playwright.md +0 -2759
- package/docs/helpers/Polly.md +0 -44
- package/docs/helpers/Protractor.md +0 -1769
- package/docs/helpers/Puppeteer-firefox.md +0 -86
- package/docs/helpers/Puppeteer.md +0 -2317
- package/docs/helpers/REST.md +0 -218
- package/docs/helpers/TestCafe.md +0 -1321
- package/docs/helpers/WebDriver.md +0 -2547
- package/docs/hooks.md +0 -340
- package/docs/index.md +0 -111
- package/docs/installation.md +0 -75
- package/docs/internal-api.md +0 -266
- package/docs/locators.md +0 -339
- package/docs/mobile-react-native-locators.md +0 -67
- package/docs/mobile.md +0 -338
- package/docs/pageobjects.md +0 -291
- package/docs/parallel.md +0 -400
- package/docs/playwright.md +0 -632
- package/docs/plugins.md +0 -1259
- package/docs/puppeteer.md +0 -316
- package/docs/quickstart.md +0 -162
- package/docs/react.md +0 -70
- package/docs/reports.md +0 -392
- package/docs/secrets.md +0 -36
- package/docs/shadow.md +0 -68
- package/docs/shared/keys.mustache +0 -31
- package/docs/shared/react.mustache +0 -1
- package/docs/testcafe.md +0 -174
- package/docs/translation.md +0 -247
- package/docs/tutorial.md +0 -271
- package/docs/typescript.md +0 -180
- package/docs/ui.md +0 -59
- package/docs/videos.md +0 -28
- package/docs/visual.md +0 -202
- package/docs/vue.md +0 -143
- package/docs/webapi/amOnPage.mustache +0 -11
- package/docs/webapi/appendField.mustache +0 -11
- package/docs/webapi/attachFile.mustache +0 -12
- package/docs/webapi/blur.mustache +0 -18
- package/docs/webapi/checkOption.mustache +0 -13
- package/docs/webapi/clearCookie.mustache +0 -9
- package/docs/webapi/clearField.mustache +0 -9
- package/docs/webapi/click.mustache +0 -25
- package/docs/webapi/clickLink.mustache +0 -8
- package/docs/webapi/closeCurrentTab.mustache +0 -7
- package/docs/webapi/closeOtherTabs.mustache +0 -8
- package/docs/webapi/dontSee.mustache +0 -11
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/dontSeeCookie.mustache +0 -8
- package/docs/webapi/dontSeeCurrentUrlEquals.mustache +0 -10
- package/docs/webapi/dontSeeElement.mustache +0 -8
- package/docs/webapi/dontSeeElementInDOM.mustache +0 -8
- package/docs/webapi/dontSeeInCurrentUrl.mustache +0 -4
- package/docs/webapi/dontSeeInField.mustache +0 -11
- package/docs/webapi/dontSeeInSource.mustache +0 -8
- package/docs/webapi/dontSeeInTitle.mustache +0 -8
- package/docs/webapi/doubleClick.mustache +0 -13
- package/docs/webapi/downloadFile.mustache +0 -12
- package/docs/webapi/dragAndDrop.mustache +0 -9
- package/docs/webapi/dragSlider.mustache +0 -11
- package/docs/webapi/executeAsyncScript.mustache +0 -24
- package/docs/webapi/executeScript.mustache +0 -26
- package/docs/webapi/fillField.mustache +0 -16
- package/docs/webapi/focus.mustache +0 -13
- package/docs/webapi/forceClick.mustache +0 -28
- package/docs/webapi/forceRightClick.mustache +0 -18
- package/docs/webapi/grabAllWindowHandles.mustache +0 -7
- package/docs/webapi/grabAttributeFrom.mustache +0 -10
- package/docs/webapi/grabAttributeFromAll.mustache +0 -9
- package/docs/webapi/grabBrowserLogs.mustache +0 -9
- package/docs/webapi/grabCookie.mustache +0 -11
- package/docs/webapi/grabCssPropertyFrom.mustache +0 -11
- package/docs/webapi/grabCssPropertyFromAll.mustache +0 -10
- package/docs/webapi/grabCurrentUrl.mustache +0 -9
- package/docs/webapi/grabCurrentWindowHandle.mustache +0 -6
- package/docs/webapi/grabDataFromPerformanceTiming.mustache +0 -20
- package/docs/webapi/grabElementBoundingRect.mustache +0 -20
- package/docs/webapi/grabGeoLocation.mustache +0 -8
- package/docs/webapi/grabHTMLFrom.mustache +0 -10
- package/docs/webapi/grabHTMLFromAll.mustache +0 -9
- package/docs/webapi/grabNumberOfOpenTabs.mustache +0 -8
- package/docs/webapi/grabNumberOfVisibleElements.mustache +0 -9
- package/docs/webapi/grabPageScrollPosition.mustache +0 -8
- package/docs/webapi/grabPopupText.mustache +0 -5
- package/docs/webapi/grabSource.mustache +0 -8
- package/docs/webapi/grabTextFrom.mustache +0 -10
- package/docs/webapi/grabTextFromAll.mustache +0 -9
- package/docs/webapi/grabTitle.mustache +0 -8
- package/docs/webapi/grabValueFrom.mustache +0 -9
- package/docs/webapi/grabValueFromAll.mustache +0 -8
- package/docs/webapi/grabWebElement.mustache +0 -9
- package/docs/webapi/grabWebElements.mustache +0 -9
- package/docs/webapi/moveCursorTo.mustache +0 -12
- package/docs/webapi/openNewTab.mustache +0 -7
- package/docs/webapi/pressKey.mustache +0 -12
- package/docs/webapi/pressKeyDown.mustache +0 -12
- package/docs/webapi/pressKeyUp.mustache +0 -12
- package/docs/webapi/pressKeyWithKeyNormalization.mustache +0 -60
- package/docs/webapi/refreshPage.mustache +0 -6
- package/docs/webapi/resizeWindow.mustache +0 -6
- package/docs/webapi/rightClick.mustache +0 -14
- package/docs/webapi/saveElementScreenshot.mustache +0 -10
- package/docs/webapi/saveScreenshot.mustache +0 -12
- package/docs/webapi/say.mustache +0 -10
- package/docs/webapi/scrollIntoView.mustache +0 -11
- package/docs/webapi/scrollPageToBottom.mustache +0 -6
- package/docs/webapi/scrollPageToTop.mustache +0 -6
- package/docs/webapi/scrollTo.mustache +0 -12
- package/docs/webapi/see.mustache +0 -11
- package/docs/webapi/seeAttributesOnElements.mustache +0 -9
- package/docs/webapi/seeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/seeCookie.mustache +0 -8
- package/docs/webapi/seeCssPropertiesOnElements.mustache +0 -9
- package/docs/webapi/seeCurrentUrlEquals.mustache +0 -11
- package/docs/webapi/seeElement.mustache +0 -8
- package/docs/webapi/seeElementInDOM.mustache +0 -8
- package/docs/webapi/seeInCurrentUrl.mustache +0 -8
- package/docs/webapi/seeInField.mustache +0 -12
- package/docs/webapi/seeInPopup.mustache +0 -8
- package/docs/webapi/seeInSource.mustache +0 -7
- package/docs/webapi/seeInTitle.mustache +0 -8
- package/docs/webapi/seeNumberOfElements.mustache +0 -11
- package/docs/webapi/seeNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/seeTextEquals.mustache +0 -9
- package/docs/webapi/seeTitleEquals.mustache +0 -8
- package/docs/webapi/selectOption.mustache +0 -21
- package/docs/webapi/setCookie.mustache +0 -16
- package/docs/webapi/setGeoLocation.mustache +0 -12
- package/docs/webapi/switchTo.mustache +0 -9
- package/docs/webapi/switchToNextTab.mustache +0 -10
- package/docs/webapi/switchToPreviousTab.mustache +0 -10
- package/docs/webapi/type.mustache +0 -21
- package/docs/webapi/uncheckOption.mustache +0 -13
- package/docs/webapi/wait.mustache +0 -8
- package/docs/webapi/waitForClickable.mustache +0 -11
- package/docs/webapi/waitForDetached.mustache +0 -10
- package/docs/webapi/waitForElement.mustache +0 -11
- package/docs/webapi/waitForEnabled.mustache +0 -6
- package/docs/webapi/waitForFunction.mustache +0 -17
- package/docs/webapi/waitForInvisible.mustache +0 -10
- package/docs/webapi/waitForNumberOfTabs.mustache +0 -9
- package/docs/webapi/waitForText.mustache +0 -13
- package/docs/webapi/waitForValue.mustache +0 -10
- package/docs/webapi/waitForVisible.mustache +0 -10
- package/docs/webapi/waitInUrl.mustache +0 -9
- package/docs/webapi/waitNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/waitToHide.mustache +0 -10
- package/docs/webapi/waitUrlEquals.mustache +0 -10
- package/docs/webdriver.md +0 -701
- package/docs/wiki/Books-&-Posts.md +0 -27
- package/docs/wiki/Community-Helpers-&-Plugins.md +0 -53
- package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +0 -61
- package/docs/wiki/Examples.md +0 -145
- package/docs/wiki/Google-Summer-of-Code-(GSoC)-2020.md +0 -68
- package/docs/wiki/Home.md +0 -16
- package/docs/wiki/Migration-to-Appium-v2---CodeceptJS.md +0 -83
- package/docs/wiki/Release-Process.md +0 -24
- package/docs/wiki/Roadmap.md +0 -23
- package/docs/wiki/Tests.md +0 -1393
- package/docs/wiki/Upgrading-to-CodeceptJS-3.md +0 -153
- package/docs/wiki/Videos.md +0 -19
- package/lib/css2xpath/js/css_to_xpath.js +0 -20
- package/lib/css2xpath/js/expression.js +0 -23
- package/lib/css2xpath/js/renderer.js +0 -239
package/docs/build/REST.js
DELETED
|
@@ -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;
|