| permalink | /helpers/REST |
|---|---|
| editLink | false |
| sidebar | auto |
| title | 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
endpointstring? API base URLprettyPrintJsonboolean? pretty print json for response/request on console logs.printCurlboolean? print cURL request on console logs. False by default.timeoutnumber? timeout for requests in milliseconds. 10000ms by default.defaultHeadersobject? a list of default headers.httpAgentobject? create an agent with SSL certificateonRequestfunction? an async function which can update request object.onResponsefunction? an async function which can update response object.maxUploadFileSizenumber? 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
}
}
}
}{
helpers: {
REST: {
endpoint: 'http://site.com/api',
prettyPrintJson: true,
httpAgent: {
ca: fs.readFileSync(__dirname + '/path/to/ca.pem'),
rejectUnauthorized: false,
keepAlive: true
}
}
}
}Send REST requests by accessing _executeRequest method:
this.helpers['REST']._executeRequest({
url,
data,
})config
Executes axios request
requestany
Returns Promise response
Generates url based on format sent (takes endpoint + url if latter lacks 'http')
urlany
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
headersobject headers list
Sends DELETE request to API.
I.sendDeleteRequest('/api/users/1')urlanyheadersobject the headers object to be sent. By default, it is sent as an empty object
Returns Promise response
Sends DELETE request to API with payload.
I.sendDeleteRequestWithPayload('/api/users/1', { author: 'john' })urlanypayloadany the payload to be sent. By default it is sent as an empty objectheadersobject the headers object to be sent. By default, it is sent as an empty object
Returns Promise response
Send GET request to REST API
I.sendGetRequest('/api/users.json')urlanyheadersobject the headers object to be sent. By default, it is sent as an empty object
Returns Promise response
Send HEAD request to REST API
I.sendHeadRequest('/api/users.json')urlanyheadersobject the headers object to be sent. By default, it is sent as an empty object
Returns Promise response
Sends PATCH request to API.
I.sendPatchRequest('/api/users.json', { email: 'user@user.com' })
// To mask the payload in logs
I.sendPatchRequest('/api/users.json', secret({ email: 'user@user.com' }))urlstringpayloadany the payload to be sent. By default it is sent as an empty objectheadersobject the headers object to be sent. By default it is sent as an empty object
Returns Promise response
Sends POST request to API.
I.sendPostRequest('/api/users.json', { email: 'user@user.com' })
// To mask the payload in logs
I.sendPostRequest('/api/users.json', secret({ email: 'user@user.com' }))urlanypayloadany the payload to be sent. By default, it is sent as an empty objectheadersobject the headers object to be sent. By default, it is sent as an empty object
Returns Promise response
Sends PUT request to API.
I.sendPutRequest('/api/users.json', { email: 'user@user.com' })
// To mask the payload in logs
I.sendPutRequest('/api/users.json', secret({ email: 'user@user.com' }))urlstringpayloadany the payload to be sent. By default it is sent as an empty objectheadersobject the headers object to be sent. By default it is sent as an empty object
Returns Promise response
Set timeout for the request
I.setRequestTimeout(10000) // In millisecondsnewTimeoutnumber timeout in milliseconds