saleor-dashboard/cypress/support/index.js
2021-02-12 09:54:52 +01:00

55 lines
1.3 KiB
JavaScript

import "./user";
import "./frontShop";
Cypress.Commands.add("clearSessionData", () => {
// Because of known cypress bug, not all local storage data are cleared.
// Here is workaround to ensure tests have no side effects.
// Suggested usage:
// beforeEach(() => {
// cy.clearSessionData();
// });
cy.clearCookies();
cy.clearLocalStorage();
cy.visit("/", {
onBeforeLoad: win => {
win.sessionStorage.clear();
}
});
});
Cypress.Commands.add("sendRequestWithQuery", query =>
cy.request({
method: "POST",
body: {
method: "POST",
url: Cypress.env("API_URI"),
query
},
headers: {
Authorization: `JWT ${window.sessionStorage.getItem("auth")}`
},
url: Cypress.env("API_URI")
})
);
Cypress.Commands.add("waitForGraph", operationName => {
const GRAPH_URL = "/graphql";
cy.intercept("POST", GRAPH_URL, req => {
req.statusCode = 200;
const requestBody = req.body;
if (Array.isArray(requestBody)) {
requestBody.forEach(element => {
if (element.operationName === operationName) {
req.alias = operationName;
}
});
} else {
if (requestBody.operationName === operationName) {
req.alias = operationName;
}
}
});
cy.wait(`@${operationName}`);
});