From 9825f26fb1edf2bf24936e489fab1f88a1ae054a Mon Sep 17 00:00:00 2001 From: Mitch-Budibase Date: Fri, 8 Jul 2022 11:33:11 +0100 Subject: [PATCH] Cypress: Smoke Build Test Changes More timing related changes to assist with smoke build tests - Increasing timeouts where applicable --- .../integration/addRadioButtons.spec.js | 1 + .../adminAndManagement/userManagement.spec.js | 16 ++++++------ .../cypress/integration/appOverview.spec.js | 7 +++--- .../cypress/integration/createView.spec.js | 1 - .../datasources/postgreSql.spec.js | 10 +++++--- packages/builder/cypress/support/commands.js | 25 +++++++++++-------- 6 files changed, 33 insertions(+), 27 deletions(-) diff --git a/packages/builder/cypress/integration/addRadioButtons.spec.js b/packages/builder/cypress/integration/addRadioButtons.spec.js index 402db195aa..578b519341 100644 --- a/packages/builder/cypress/integration/addRadioButtons.spec.js +++ b/packages/builder/cypress/integration/addRadioButtons.spec.js @@ -10,6 +10,7 @@ filterTests(['all'], () => { it("should add Radio Buttons options picker on form, add data, and confirm", () => { cy.navigateToFrontend() + cy.wait(500) cy.addComponent("Form", "Form") cy.addComponent("Form", "Options Picker").then((componentId) => { // Provide field setting diff --git a/packages/builder/cypress/integration/adminAndManagement/userManagement.spec.js b/packages/builder/cypress/integration/adminAndManagement/userManagement.spec.js index 69f3c2ec1d..562e1e149f 100644 --- a/packages/builder/cypress/integration/adminAndManagement/userManagement.spec.js +++ b/packages/builder/cypress/integration/adminAndManagement/userManagement.spec.js @@ -43,7 +43,7 @@ filterTests(["smoke", "all"], () => { const uuid = () => Cypress._.random(0, 1e6) const name = uuid() if(i < 1){ - cy.createApp(name) + cy.createApp(name, false) } else { cy.visit(`${Cypress.config().baseUrl}/builder`, { timeout: 5000}) cy.wait(1000) @@ -56,7 +56,7 @@ filterTests(["smoke", "all"], () => { // Navigate back to the user cy.visit(`${Cypress.config().baseUrl}/builder`, { timeout: 5000}) cy.get(interact.SPECTRUM_SIDENAV).contains("Users").click() - cy.get(interact.SPECTRUM_TABLE, { timeout: 500 }).contains("bbuser").click() + cy.get(interact.SPECTRUM_TABLE, { timeout: 1000 }).contains("bbuser").click() for (let i = 0; i < 3; i++) { cy.get(interact.SPECTRUM_TABLE, { timeout: 3000}) .eq(1) @@ -65,24 +65,24 @@ filterTests(["smoke", "all"], () => { .find(interact.SPECTRUM_TABLE_CELL) .eq(0) .click() - cy.get(interact.SPECTRUM_DIALOG_GRID, { timeout: 500 }) + cy.get(interact.SPECTRUM_DIALOG_GRID, { timeout: 1000 }) .contains("Choose an option") .click() .then(() => { if (i == 0) { - cy.get(interact.SPECTRUM_MENU, { timeout: 1000 }).contains("Admin").click({ force: true }) + cy.get(interact.SPECTRUM_MENU, { timeout: 2000 }).contains("Admin").click({ force: true }) } else if (i == 1) { - cy.get(interact.SPECTRUM_MENU, { timeout: 1000 }).contains("Power").click({ force: true }) + cy.get(interact.SPECTRUM_MENU, { timeout: 2000 }).contains("Power").click({ force: true }) } else if (i == 2) { - cy.get(interact.SPECTRUM_MENU, { timeout: 1000 }).contains("Basic").click({ force: true }) + cy.get(interact.SPECTRUM_MENU, { timeout: 2000 }).contains("Basic").click({ force: true }) } - cy.get(interact.SPECTRUM_BUTTON, { timeout: 1000 }) + cy.get(interact.SPECTRUM_BUTTON, { timeout: 2000 }) .contains("Update role") .click({ force: true }) }) - cy.reload() + cy.reload({ timeout: 5000 }) cy.wait(1000) } // Confirm roles exist within Configure roles table diff --git a/packages/builder/cypress/integration/appOverview.spec.js b/packages/builder/cypress/integration/appOverview.spec.js index 5856786bc4..dbfce3ce63 100644 --- a/packages/builder/cypress/integration/appOverview.spec.js +++ b/packages/builder/cypress/integration/appOverview.spec.js @@ -6,7 +6,7 @@ filterTests(["all"], () => { before(() => { cy.login() cy.deleteAllApps() - cy.createTestApp() + cy.createApp("Cypress Tests") }) it("Should be accessible from the applications list", () => { @@ -82,13 +82,14 @@ filterTests(["all"], () => { }) it("Should reflect the app deployment state", () => { - cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.visit(`${Cypress.config().baseUrl}/builder`, { timeout: 5000 }) cy.get(".appTable .app-row-actions button") .contains("Edit") .eq(0) .click({ force: true }) - cy.get(".toprightnav button.spectrum-Button") + cy.wait(500) + cy.get(".toprightnav button.spectrum-Button", { timeout: 2000 }) .contains("Publish") .click({ force: true }) cy.get(".spectrum-Modal [data-cy='deploy-app-modal']") diff --git a/packages/builder/cypress/integration/createView.spec.js b/packages/builder/cypress/integration/createView.spec.js index a2d09d97bf..9adc486f70 100644 --- a/packages/builder/cypress/integration/createView.spec.js +++ b/packages/builder/cypress/integration/createView.spec.js @@ -5,7 +5,6 @@ filterTests(['smoke', 'all'], () => { context("Create a View", () => { before(() => { cy.login() - cy.createTestApp() cy.createTable("data") cy.addColumn("data", "group", "Text") diff --git a/packages/builder/cypress/integration/datasources/postgreSql.spec.js b/packages/builder/cypress/integration/datasources/postgreSql.spec.js index 15e31308fc..ccecfbd5df 100644 --- a/packages/builder/cypress/integration/datasources/postgreSql.spec.js +++ b/packages/builder/cypress/integration/datasources/postgreSql.spec.js @@ -217,20 +217,21 @@ filterTests(["all"], () => { it("should edit a query name", () => { // Access query - cy.get(".hierarchy-items-container") + cy.get(".hierarchy-items-container", { timeout: 2000 }) .contains(queryName + " (1)") .click() // Rename query - cy.get(".spectrum-Form-item") + cy.wait(1000) + cy.get(".spectrum-Form-item", { timeout: 2000 }) .eq(0) .within(() => { cy.get("input").clear().type(queryRename) }) // Run and Save query - cy.get(".spectrum-Button").contains("Run Query").click({ force: true }) - cy.wait(500) + cy.get(".spectrum-Button", { timeout: 2000 }).contains("Run Query").click({ force: true }) + cy.wait(1000) cy.get(".spectrum-Button", { timeout: 2000 }).contains("Save Query").click({ force: true }) cy.reload({ timeout: 5000 }) cy.get(".nav-item", { timeout: 2000 }).should("contain", queryRename) @@ -250,6 +251,7 @@ filterTests(["all"], () => { .contains("Delete Query") .click({ force: true }) // Confirm deletion + cy.reload({ timeout: 5000 }) cy.get(".nav-item", { timeout: 1000 }).should("not.contain", queryName) }) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index 6f05b2a9fd..b2ab8e678c 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -403,17 +403,19 @@ Cypress.Commands.add("createAppFromScratch", appName => { Cypress.Commands.add("createTable", (tableName, initialTable) => { if (!initialTable) { cy.navigateToDataSection() - cy.get(`[data-cy="new-table"]`).click() + cy.get(`[data-cy="new-table"]`, { timeout: 2000 }).click() } cy.wait(2000) - cy.get(".item") + cy.get(".item", { timeout: 2000 }) .contains("Budibase DB") .click({ force: true }) .then(() => { - cy.get(".spectrum-Button").contains("Continue").click({ force: true }) + cy.get(".spectrum-Button", { timeout: 2000 }) + .contains("Continue") + .click({ force: true }) }) - cy.get(".spectrum-Modal").within(() => { - cy.get("input", { timeout: 1000 }).first().type(tableName).blur() + cy.get(".spectrum-Modal", { timeout: 2000 }).within(() => { + cy.get("input", { timeout: 2000 }).first().type(tableName).blur() cy.get(".spectrum-ButtonGroup").contains("Create").click() }) cy.contains(tableName).should("be.visible") @@ -507,12 +509,13 @@ Cypress.Commands.add("addCustomSourceOptions", totalOptions => { // DESIGN AREA Cypress.Commands.add("addComponent", (category, component) => { if (category) { - cy.get(`[data-cy="category-${category}"]`, { timeout: 1000 }).click({ + cy.get(`[data-cy="category-${category}"]`, { timeout: 3000 }).click({ force: true, }) } + cy.wait(500) if (component) { - cy.get(`[data-cy="component-${component}"]`, { timeout: 1000 }).click({ + cy.get(`[data-cy="component-${component}"]`, { timeout: 3000 }).click({ force: true, }) } @@ -520,7 +523,7 @@ Cypress.Commands.add("addComponent", (category, component) => { cy.location().then(loc => { const params = loc.pathname.split("/") const componentId = params[params.length - 1] - cy.getComponent(componentId).should("exist") + cy.getComponent(componentId, { timeout: 3000 }).should("exist") return cy.wrap(componentId) }) }) @@ -624,8 +627,8 @@ Cypress.Commands.add("navigateToFrontend", () => { // Clicks on Design tab and then the Home nav item cy.wait(500) cy.contains("Design").click() - cy.get(".spectrum-Search").type("/") - cy.get(".nav-item").contains("home").click() + cy.get(".spectrum-Search", { timeout: 2000 }).type("/") + cy.get(".nav-item", { timeout: 2000 }).contains("home").click() }) Cypress.Commands.add("navigateToDataSection", () => { @@ -785,7 +788,7 @@ Cypress.Commands.add("createRestQuery", (method, restUrl, queryPrettyName) => { // MISC Cypress.Commands.add("closeModal", () => { - cy.get(".spectrum-Modal").within(() => { + cy.get(".spectrum-Modal", { timeout: 2000 }).within(() => { cy.get(".close-icon").click() cy.wait(1000) // Wait for modal to close })