diff --git a/packages/bbui/src/Popover/PopoverMenu.svelte b/packages/bbui/src/Popover/PopoverMenu.svelte index 7c9d52f499..11a3f4893f 100644 --- a/packages/bbui/src/Popover/PopoverMenu.svelte +++ b/packages/bbui/src/Popover/PopoverMenu.svelte @@ -8,6 +8,7 @@ export let anchor export let showTip = true export let direction = "bottom" + export let dataCy = null let dropdown let tipSvg = @@ -55,7 +56,7 @@ {@html tipSvg} {/if} -
+
diff --git a/packages/builder/cypress/integration/appPublishWorkflow.spec.js b/packages/builder/cypress/integration/appPublishWorkflow.spec.js index 48190ea69b..efcd6c0a53 100644 --- a/packages/builder/cypress/integration/appPublishWorkflow.spec.js +++ b/packages/builder/cypress/integration/appPublishWorkflow.spec.js @@ -11,61 +11,64 @@ filterTests(['all'], () => { cy.visit(`${Cypress.config().baseUrl}/builder`) cy.wait(1000) - cy.get(".appTable") - let appStatusEle = cy.get(".app-status").eq(0) - appStatusEle.contains("Unpublished") - appStatusEle.get("svg[aria-label='GlobeStrike']").should("exist") - appStatusEle.get(".app-row-actions .spectrum-Button").contains("Preview") - - appStatusEle.get(".app-row-actions .spectrum-Button").contains("Edit").click({ force: true }) + cy.get(".appTable .app-status").eq(0) + .within(() => { + cy.contains("Unpublished") + cy.get("svg[aria-label='GlobeStrike']").should("exist") + }) + cy.get(".appTable .app-row-actions").eq(0) + .within(() => { + cy.get(".spectrum-Button").contains("Preview") + cy.get(".spectrum-Button").contains("Edit").click({ force: true }) + }) + cy.get(".app-status-icon svg[aria-label='GlobeStrike']").should("exist") cy.get(".app-status-icon svg[aria-label='Globe']").should("not.exist") }) 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 }) - let deployModal = cy.get(".spectrum-Modal [data-cy='deploy-app-modal']").should("be.visible") - deployModal.within(() => { + 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) }); - let deployModalSuccess = cy.get(".spectrum-Modal [data-cy='deploy-app-success-modal']") - deployModalSuccess.should("be.visible") - - deployModalSuccess.within(() => { - cy.get("[data-cy='deployed-app-url'] input").should('have.value', Cypress.config().baseUrl + '/app/cypress-tests') + //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 }) - }); - - deployModalSuccess.should("exist") + }) cy.visit(`${Cypress.config().baseUrl}/builder`) cy.wait(1000) - cy.get(".appTable") - let appStatusEle = cy.get(".app-status").eq(0) - appStatusEle.contains("Published") - appStatusEle.get("svg[aria-label='Globe']").should("exist") - appStatusEle.get(".app-row-actions .spectrum-Button").contains("View app") + cy.get(".appTable .app-status").eq(0) + .within(() => { + cy.contains("Published") + cy.get("svg[aria-label='Globe']").should("exist") + }) - appStatusEle.get(".app-row-actions .spectrum-Button").contains("Edit").click({ force: true }) + cy.get(".appTable .app-row-actions").eq(0) + .within(() => { + cy.get(".spectrum-Button").contains("View app") + cy.get(".spectrum-Button").contains("Edit").click({ force: true }) + }) - const publishStatusIcon = cy.get(".app-status-icon svg[aria-label='Globe']").should("exist") - publishStatusIcon.click({ force: true }) + cy.get(".app-status-icon svg[aria-label='Globe']").should("exist").click({ force: true }) - const publishingMenu = cy.get("[data-cy='publish-popover-action']") - publishingMenu.should("be.visible") - - publishingMenu.get("button[data-cy='publish-popover-action']").should("exist") - publishingMenu.get("button").contains("View App").should("exist") - - publishingMenu.get(".publish-popover-message").should("have.text", "Last Published: a few seconds ago") - + cy.get("[data-cy='publish-popover-menu']").should("be.visible") + .within(() => { + cy.get("[data-cy='publish-popover-action']").should("exist") + cy.get("button").contains("View App").should("exist") + cy.get(".publish-popover-message").should("have.text", "Last Published: a few seconds ago") + }) }) it("Should unpublish an application from the top navigation and reflect the status change", () => { @@ -73,36 +76,36 @@ filterTests(['all'], () => { cy.visit(`${Cypress.config().baseUrl}/builder`) - cy.get(".appTable") - let appStatusEle = cy.get(".app-status").eq(0) - appStatusEle.contains("Published") - appStatusEle.get("svg[aria-label='Globe']").should("exist") - appStatusEle.get(".app-row-actions .spectrum-Button").contains("View app") + cy.get(".appTable .app-status").eq(0) + .within(() => { + cy.contains("Published") + cy.get("svg[aria-label='Globe']").should("exist") + }) - appStatusEle.get(".app-row-actions .spectrum-Button").contains("Edit").click({ force: true }) + cy.get(".appTable .app-row-actions").eq(0) + .within(() => { + cy.get(".spectrum-Button").contains("View app") + cy.get(".spectrum-Button").contains("Edit").click({ force: true }) + }) //The published status - const publishStatusIcon = cy.get(".app-status-icon svg[aria-label='Globe']").should("exist") - publishStatusIcon.click({ force: true }) - - const publishingMenu = cy.get("[data-cy='publish-popover-action']") - publishingMenu.should("be.visible") + cy.get(".app-status-icon svg[aria-label='Globe']").should("exist") + .click({ force: true }) - const unpublishButton = publishingMenu.get("button[data-cy='publish-popover-action']") - unpublishButton.should("exist") + 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 }) - unpublishButton.click({ force : true }) - - const unpublishModal = cy.get("[data-cy='unpublish-modal']") - unpublishModal.should("be.visible") - unpublishModal.get(".confirm-wrap button").click({ force: true }) + cy.get("[data-cy='unpublish-modal']").should("be.visible") + .within(() => { + cy.get(".confirm-wrap button").click({ force: true } + )}) cy.get(".app-status-icon svg[aria-label='GlobeStrike']").should("exist") cy.visit(`${Cypress.config().baseUrl}/builder`) - appStatusEle = cy.get(".appTable") - appStatusEle.get(".app-status").eq(0).contains("Unpublished") + cy.get(".appTable .app-status").eq(0).contains("Unpublished") }) })