permalink | editLink | sidebar | title |
---|---|---|---|
/helpers/REST |
false |
auto |
REST |
Extends Helper
REST helper allows to send additional requests to the REST API during acceptance tests. Axios library is used to perform requests.
Type: object
endpoint
string? API base URLprettyPrintJson
boolean? pretty print json for response/request on console logs.printCurl
boolean? print cURL request on console logs. False by default.timeout
number? timeout for requests in milliseconds. 10000ms by default.defaultHeaders
object? a list of default headers.httpAgent
object? create an agent with SSL certificateonRequest
function? an async function which can update request object.onResponse
function? an async function which can update response object.maxUploadFileSize
number? set the max content file size in MB when performing api calls.
{
helpers: {
REST: {
endpoint: 'http://site.com/api',
prettyPrintJson: true,
onRequest: (request) => {
request.headers.auth = '123';
}
}
}
}
With httpAgent
{
helpers: {
REST: {
endpoint: 'http://site.com/api',
prettyPrintJson: true,
httpAgent: {
key: fs.readFileSync(__dirname + '/path/to/keyfile.key'),
cert: fs.readFileSync(__dirname + '/path/to/certfile.cert'),
rejectUnauthorized: false,
keepAlive: true
}
}
}
}
Send REST requests by accessing _executeRequest
method:
this.helpers['REST']._executeRequest({
url,
data,
});
config
Executes axios request
request
any
Returns Promise<any> response
Generates url based on format sent (takes endpoint + url if latter lacks 'http')
url
any
Adds a header for Bearer authentication
// we use secret function to hide token from logs
I.amBearerAuthenticated(secret('heregoestoken'))
accessToken
(string | CodeceptJS.Secret) Bearer access token
Sets request headers for all requests of this test
headers
object headers list
Sends DELETE request to API.
I.sendDeleteRequest('/api/users/1');
url
anyheaders
object the headers object to be sent. By default, it is sent as an empty object
Returns Promise<any> response
Send GET request to REST API
I.sendGetRequest('/api/users.json');
url
anyheaders
object the headers object to be sent. By default, it is sent as an empty object
Returns Promise<any> response
Sends PATCH request to API.
I.sendPatchRequest('/api/users.json', { "email": "[email protected]" });
// To mask the payload in logs
I.sendPatchRequest('/api/users.json', secret({ "email": "[email protected]" }));
url
stringpayload
any the payload to be sent. By default it is sent as an empty objectheaders
object the headers object to be sent. By default it is sent as an empty object
Returns Promise<any> response
Sends POST request to API.
I.sendPostRequest('/api/users.json', { "email": "[email protected]" });
// To mask the payload in logs
I.sendPostRequest('/api/users.json', secret({ "email": "[email protected]" }));
url
anypayload
any the payload to be sent. By default, it is sent as an empty objectheaders
object the headers object to be sent. By default, it is sent as an empty object
Returns Promise<any> response
Sends PUT request to API.
I.sendPutRequest('/api/users.json', { "email": "[email protected]" });
// To mask the payload in logs
I.sendPutRequest('/api/users.json', secret({ "email": "[email protected]" }));
url
stringpayload
any the payload to be sent. By default it is sent as an empty objectheaders
object the headers object to be sent. By default it is sent as an empty object
Returns Promise<any> response
Set timeout for the request
I.setRequestTimeout(10000); // In milliseconds
newTimeout
number timeout in milliseconds