From 3c86bd24f2cc87cebb7fbc6b078d4f87d10dddf3 Mon Sep 17 00:00:00 2001 From: Dean Date: Thu, 19 May 2022 13:32:05 +0100 Subject: [PATCH] Cypress test updates and back button update for the create screen --- .../cypress/integration/appOverview.spec.js | 74 ++++++++++++++++--- .../integration/appPublishWorkflow.spec.js | 16 +--- packages/builder/cypress/support/commands.js | 23 ++++++ .../pages/builder/portal/apps/create.svelte | 8 +- 4 files changed, 92 insertions(+), 29 deletions(-) diff --git a/packages/builder/cypress/integration/appOverview.spec.js b/packages/builder/cypress/integration/appOverview.spec.js index 93db43c861..db093344b4 100644 --- a/packages/builder/cypress/integration/appOverview.spec.js +++ b/packages/builder/cypress/integration/appOverview.spec.js @@ -268,23 +268,77 @@ filterTests(['all'], () => { cy.get(".details-section .page-action .spectrum-Button").should("be.disabled") }) - - after(() => { + + it("Should allow copying of the published application Id", () => { cy.visit(`${Cypress.config().baseUrl}/builder`) - cy.get(".appTable .app-row-actions button").contains("Edit").eq(0).click({force: true}) + cy.get(".appTable .app-row-actions").eq(0) + .within(() => { + cy.get(".spectrum-Button").contains("Edit").click({ force: true }) + }) - cy.get(".deployment-top-nav svg[aria-label='Globe']") - .click({ force: true }) + cy.publishApp("sample-name") + + cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.get(".appTable .name").eq(0).click() + + cy.get(".app-overview-actions-icon > .icon").click({ force : true }) + + cy.get("[data-cy='app-overview-menu-popover']").eq(0).within(() => { + cy.get(".spectrum-Menu-item").contains("Copy App ID").click({ force: true }) + }) + + cy.get(".spectrum-Toast-content").contains("App ID copied to clipboard.").should("be.visible") + }) + + it("Should allow unpublishing of the application", () => { + cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.get(".appTable .name").eq(0).click() + + cy.get(".app-overview-actions-icon > .icon").click({ force : true }) + + cy.get("[data-cy='app-overview-menu-popover']").eq(0).within(() => { + cy.get(".spectrum-Menu-item").contains("Unpublish").click({ force: true }) + cy.wait(500) + }) - cy.get("[data-cy='publish-popover-menu']").should("be.visible") - cy.get("[data-cy='publish-popover-menu'] [data-cy='publish-popover-action']") - .click({ force : true }) - cy.get("[data-cy='unpublish-modal']").should("be.visible") .within(() => { cy.get(".confirm-wrap button").click({ force: true } )}) - cy.wait(1000) + + cy.get(".overview-tab [data-cy='app-status']").within(() => { + cy.get(".status-display").contains("Unpublished") + cy.get(".status-display .icon svg[aria-label='GlobeStrike']").should("exist") + }) + }) + + it("Should allow deleting of the application", () => { + cy.visit(`${Cypress.config().baseUrl}/builder`) + cy.get(".appTable .name").eq(0).click() + + cy.get(".app-overview-actions-icon > .icon").click({ force : true }) + + cy.get("[data-cy='app-overview-menu-popover']").eq(0).within(() => { + cy.get(".spectrum-Menu-item").contains("Delete").click({ force: true }) + cy.wait(500) + }) + + //The test application was renamed earlier in the spec + cy.get(".spectrum-Dialog-grid").within(() => { + cy.get("input").type("sample name") + cy.get(".spectrum-Button--warning").click() + }) + + cy.location().should((loc) => { + expect(loc.pathname).to.eq('/builder/portal/apps') + }) + + cy.get(".appTable").should("not.exist") + + cy.get(".welcome .container h1").contains("Let's create your first app!") + }) + + after(() => { cy.deleteAllApps() }) diff --git a/packages/builder/cypress/integration/appPublishWorkflow.spec.js b/packages/builder/cypress/integration/appPublishWorkflow.spec.js index 71afd5accf..fb3c48645f 100644 --- a/packages/builder/cypress/integration/appPublishWorkflow.spec.js +++ b/packages/builder/cypress/integration/appPublishWorkflow.spec.js @@ -29,22 +29,8 @@ filterTests(['all'], () => { it("Should publish an application and correctly reflect that", () => { //Assuming the previous test was run and the unpublished app is open in edit mode. - cy.get(".toprightnav button.spectrum-Button").contains("Publish").click({ force : true }) - cy.get(".spectrum-Modal [data-cy='deploy-app-modal']").should("be.visible") - .within(() => { - cy.get(".spectrum-Button").contains("Publish").click({ force : true }) - cy.wait(1000) - }); - - //Verify that the app url is presented correctly to the user - cy.get(".spectrum-Modal [data-cy='deploy-app-success-modal']") - .should("be.visible") - .within(() => { - let appUrl = Cypress.config().baseUrl + '/app/cypress-tests' - cy.get("[data-cy='deployed-app-url'] input").should('have.value', appUrl) - cy.get(".spectrum-Button").contains("Done").click({ force: true }) - }) + cy.publishApp("cypress-tests") cy.visit(`${Cypress.config().baseUrl}/builder`) cy.wait(1000) diff --git a/packages/builder/cypress/support/commands.js b/packages/builder/cypress/support/commands.js index e33fe3af4a..2fbc462359 100644 --- a/packages/builder/cypress/support/commands.js +++ b/packages/builder/cypress/support/commands.js @@ -298,6 +298,29 @@ Cypress.Commands.add("unlockApp", unlock_config => { }) }) +Cypress.Commands.add("publishApp", resolvedAppPath => { + //Assumes you have navigated to an application first + cy.get(".toprightnav button.spectrum-Button") + .contains("Publish") + .click({ force: true }) + + cy.get(".spectrum-Modal [data-cy='deploy-app-modal']") + .should("be.visible") + .within(() => { + cy.get(".spectrum-Button").contains("Publish").click({ force: true }) + cy.wait(1000) + }) + + //Verify that the app url is presented correctly to the user + cy.get(".spectrum-Modal [data-cy='deploy-app-success-modal']") + .should("be.visible") + .within(() => { + let appUrl = Cypress.config().baseUrl + "/app/" + resolvedAppPath + cy.get("[data-cy='deployed-app-url'] input").should("have.value", appUrl) + cy.get(".spectrum-Button").contains("Done").click({ force: true }) + }) +}) + Cypress.Commands.add("createTestApp", () => { const appName = "Cypress Tests" cy.deleteApp(appName) diff --git a/packages/builder/src/pages/builder/portal/apps/create.svelte b/packages/builder/src/pages/builder/portal/apps/create.svelte index cd2d47ea4c..4fd69bc815 100644 --- a/packages/builder/src/pages/builder/portal/apps/create.svelte +++ b/packages/builder/src/pages/builder/portal/apps/create.svelte @@ -9,6 +9,7 @@ Body, Modal, Divider, + ActionButton, } from "@budibase/bbui" import CreateAppModal from "components/start/CreateAppModal.svelte" import TemplateDisplay from "components/common/TemplateDisplay.svelte" @@ -60,16 +61,15 @@ - +