From 7ab64c730bf4c9ec070dd1b46ce0267603dad764 Mon Sep 17 00:00:00 2001 From: Mitch-Budibase Date: Mon, 18 Jul 2022 13:52:21 +0100 Subject: [PATCH 1/2] Timeout changes for Cypress Commands file Cypress visit and requests in some cases need a timeout value included. This is specific for smoke build and CI runs (has no effect on local runs) --- packages/builder/cypress/support/commands.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index b2ab8e678..becac0fb4 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -4,7 +4,7 @@ Cypress.on("uncaught:exception", () => { // ACCOUNTS & USERS Cypress.Commands.add("login", (email, password) => { - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`${Cypress.config().baseUrl}/builder`, { timeout: 5000 }) cy.wait(2000) cy.url().then(url => { if (url.includes("builder/admin")) { @@ -223,9 +223,11 @@ Cypress.Commands.add("deleteApp", name => { }) Cypress.Commands.add("deleteAllApps", () => { - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`${Cypress.config().baseUrl}/builder`, { timeout: 5000 }) cy.wait(500) - cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) + cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`, { + timeout: 5000, + }) .its("body") .then(val => { for (let i = 0; i < val.length; i++) { From d9f0d9da1c536a122384dac022bc94caa5cf2f4a Mon Sep 17 00:00:00 2001 From: Mitch-Budibase Date: Mon, 18 Jul 2022 14:28:27 +0100 Subject: [PATCH 2/2] Create App Tests: Timeout Changes This test spec file fires off against every PR. There is some timing issues currently. I am making a few changes in relation to timeout values (a small restructure too) in hopes this helps with the PR builds. Tests pass locally for me, so there may be more changes required against this spec file as I check its performance --- packages/builder/cypress/integration/createApp.spec.js | 10 ++-------- packages/builder/cypress/support/commands.js | 6 ++++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/builder/cypress/integration/createApp.spec.js b/packages/builder/cypress/integration/createApp.spec.js index ca52c66e3..1dd0d2264 100644 --- a/packages/builder/cypress/integration/createApp.spec.js +++ b/packages/builder/cypress/integration/createApp.spec.js @@ -100,24 +100,18 @@ filterTests(['smoke', 'all'], () => { }) it("should create the first application from scratch, using the users first name as the default app name", () => { - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`${Cypress.config().baseUrl}/builder`, { timeout: 5000 }) cy.updateUserInformation("Ted", "Userman") cy.createApp("", false) - - cy.visit(`${Cypress.config().baseUrl}/builder`) - cy.applicationInAppTable("Teds app") cy.deleteApp("Teds app") - //Accomodate names that end in 'S' + // Accomodate names that end in 'S' cy.updateUserInformation("Chris", "Userman") cy.createApp("", false) - - cy.visit(`${Cypress.config().baseUrl}/builder`) - cy.applicationInAppTable("Chris app") cy.deleteApp("Chris app") diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index becac0fb4..21df5b859 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -139,7 +139,9 @@ Cypress.Commands.add("createApp", (name, addDefaultTable) => { cy.get(`[data-cy="create-app-btn"]`, { timeout: 5000 }).click({ force: true }) // If apps already exist - cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) + cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`, { + timeout: 5000, + }) .its("body") .then(val => { if (val.length > 0) { @@ -379,7 +381,7 @@ Cypress.Commands.add("searchForApplication", appName => { // Assumes there are no others Cypress.Commands.add("applicationInAppTable", appName => { cy.visit(`${Cypress.config().baseUrl}/builder`, { timeout: 10000 }) - cy.get(".appTable", { timeout: 2000 }).within(() => { + cy.get(".appTable", { timeout: 5000 }).within(() => { cy.get(".title").contains(appName).should("exist") }) })