-
Notifications
You must be signed in to change notification settings - Fork 0
/
backend_caller.js
33 lines (30 loc) · 980 Bytes
/
backend_caller.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// https://github.com/Splines/cypress-rails-factory-bot
/**
* Class to call special Cypress backend routes from Cypress frontend tests.
*/
class BackendCaller {
/**
* Calls the given route as POST request to the backend.
*
* @param routeName name of the route to call
* @param errorSubject subject in the error message
* @param args arguments to pass as body to the POST route
* @returns the response body of the route as Cypress promise (not native promise!)
*/
static callCypressRoute(routeName, errorSubject, args) {
return cy.request({
url: `cypress/${routeName}`,
method: "post",
form: true,
failOnStatusCode: false,
body: args,
}).then((res) => {
if (res.status === 201)
return res.body;
let errorMsg = `${errorSubject} failed: ${res.body.error}`;
errorMsg += `\n\nStacktrace:\n${res.body.stacktrace}`;
throw new Error(errorMsg);
});
}
}
export default BackendCaller;