});
});
-Cypress.Commands.add("createCollection", (token, data) => {
+Cypress.Commands.add("createCollection", (token, data, keep = false) => {
return cy.createResource(token, "collections", {
collection: JSON.stringify(data),
ensure_unique_name: true,
- });
+ }, keep);
});
Cypress.Commands.add("getCollection", (token, uuid) => {
});
});
-Cypress.Commands.add("createResource", (token, suffix, data) => {
+Cypress.Commands.add("createResource", (token, suffix, data, keep = false) => {
return cy
.doRequest("POST", "/arvados/v1/" + suffix, data, null, token, true)
.its("body")
.then(function (resource) {
- createdResources.push({ suffix, uuid: resource.uuid });
+ if (! keep) {
+ createdResources.push({ suffix, uuid: resource.uuid });
+ };
return resource;
});
});
+
Cypress.Commands.add("deleteResource", (token, suffix, uuid, failOnStatusCode = true) => {
return cy
.doRequest("DELETE", "/arvados/v1/" + suffix + "/" + uuid, null, null, token, false, true, failOnStatusCode)
});
Cypress.Commands.add("loginAs", user => {
+ // This shouldn't be necessary unless we need to call loginAs multiple times
+ // in the same test.
cy.clearCookies();
- cy.clearLocalStorage();
+ cy.clearAllLocalStorage();
+ cy.clearAllSessionStorage();
cy.visit(`/token/?api_token=${user.token}`);
// Use waitUntil to avoid permafail race conditions with window.location being undefined
cy.waitUntil(() => cy.window().then(win =>
win?.location?.href &&
win.location.href.includes("/projects/")
), { timeout: 15000 });
+ // Wait for page to settle before getting elements
+ cy.waitForDom();
cy.get("div#root").should("contain", "Arvados Workbench (zzzzz)");
cy.get("div#root").should("not.contain", "Your account is inactive");
});
// From https://github.com/cypress-io/cypress/issues/7306#issuecomment-1076451070=
// This command requires the async package (https://www.npmjs.com/package/async)
Cypress.Commands.add("waitForDom", () => {
- cy.window().then(
+ cy.window({ timeout: 10000 }).then(
{
// Don't timeout before waitForDom finishes
timeout: 10000,