diff --git a/scripts/cypress/support/commands.js b/scripts/cypress/support/commands.js index 303531a2a5..76667e66b9 100644 --- a/scripts/cypress/support/commands.js +++ b/scripts/cypress/support/commands.js @@ -30,32 +30,32 @@ import { isXcdb, isPostgres } from "./page_objects/projectConstants"; require("@4tw/cypress-drag-drop"); // recursively gets an element, returning only after it's determined to be attached to the DOM for good -Cypress.Commands.add('getSettled', (selector, opts = {}) => { +Cypress.Commands.add("getSettled", (selector, opts = {}) => { const retries = opts.retries || 3; const delay = opts.delay || 400; const isAttached = (resolve, count = 0) => { - const el = Cypress.$(selector); + const el = Cypress.$(selector); - // is element attached to the DOM? - count = Cypress.dom.isAttached(el) ? count + 1 : 0; + // is element attached to the DOM? + count = Cypress.dom.isAttached(el) ? count + 1 : 0; - // hit our base case, return the element - if (count >= retries) { - return resolve(el); - } + // hit our base case, return the element + if (count >= retries) { + return resolve(el); + } - // retry after a bit of a delay - setTimeout(() => isAttached(resolve, count), delay); + // retry after a bit of a delay + setTimeout(() => isAttached(resolve, count), delay); }; // wrap, so we can chain cypress commands off the result return cy.wrap(null).then(() => { - return new Cypress.Promise((resolve) => { - return isAttached(resolve, 0); - }).then((el) => { - return cy.wrap(el); - }); + return new Cypress.Promise((resolve) => { + return isAttached(resolve, 0); + }).then((el) => { + return cy.wrap(el); + }); }); }); @@ -179,7 +179,7 @@ Cypress.Commands.add("openTableTab", (tn, rc) => { // for some tables, linked records are not available immediately cy.wait(1000); - cy.get(".xc-row-table.nc-grid").should("exist"); + cy.get(".xc-row-table.nc-grid", { timeout: 30000 }).should("exist"); // wait for page rendering to complete if (rc != 0) {