forked from tsai/budibase
7 changed files with 297 additions and 11 deletions
@ -0,0 +1,215 @@ |
|||
import filterTests from "../support/filterTests" |
|||
|
|||
filterTests(['all'], () => { |
|||
context("Application Overview screen", () => { |
|||
before(() => { |
|||
cy.login() |
|||
cy.createTestApp() |
|||
}) |
|||
|
|||
/* |
|||
The ability to switch accounts will deffo be necessary |
|||
|
|||
x APP Screen |
|||
Click on app name |
|||
Click on edit |
|||
|
|||
x Edit Icon Functionality |
|||
|
|||
Lock button display and behaviour |
|||
|
|||
Edit button status and behaviour |
|||
|
|||
** To ratifying alot of this stuff will require the app itself |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
cy.wait(2000) |
|||
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) |
|||
.its("body") |
|||
.then(val => { |
|||
const findAppName = val.some(val => val.name == name) |
|||
if (findAppName) { |
|||
|
|||
Publish Card |
|||
x Never published |
|||
Unpublished |
|||
Should show the last valid publish date |
|||
x Published |
|||
Should show the valid publish date |
|||
Edit Card |
|||
D or DH or the first letter of their email. |
|||
Timestamp vaguely matches. |
|||
Version Card |
|||
How to get use cases? Available/Unavailable? |
|||
|
|||
Settings Tab |
|||
Edit Url |
|||
Edit Name |
|||
|
|||
Versioning? |
|||
|
|||
Tab behaviour |
|||
Click all 3 main tabs. |
|||
Check positioning. |
|||
Dashcard behaviour. Concentrate on the App version |
|||
Header behaviour on click |
|||
Quick link behaviour |
|||
|
|||
Locking behaviour |
|||
Button contents, D or DH or the first letter of their email. |
|||
Locked by you |
|||
Locked by someone else |
|||
|
|||
Timeout check. Apps > edit > back > app title |
|||
"This lock will expire in 10 minutes from now" |
|||
*/ |
|||
|
|||
it("Should be accessible from the applications list", () => { |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
|
|||
// Reusable command? toAppOverview
|
|||
cy.get(".appTable .title").eq(0) |
|||
.invoke('attr', 'data-cy') |
|||
.then(($dataCy) => { |
|||
const dataCy = $dataCy; |
|||
cy.get(".appTable .name").eq(0).click() |
|||
|
|||
cy.location().should((loc) => { |
|||
expect(loc.pathname).to.eq('/builder/portal/overview/' + dataCy) |
|||
}) |
|||
}) |
|||
|
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
|
|||
cy.get(".appTable .title").eq(0) |
|||
.invoke('attr', 'data-cy') |
|||
.then(($dataCy) => { |
|||
const dataCy = $dataCy; |
|||
cy.get(".appTable .app-row-actions button").contains("View").click({force: true}) |
|||
|
|||
cy.location().should((loc) => { |
|||
expect(loc.pathname).to.eq('/builder/portal/overview/' + dataCy) |
|||
}) |
|||
}) |
|||
|
|||
}) |
|||
|
|||
// Find a more suitable place for this.
|
|||
it("Should allow unlocking in the app list", () => { |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
|
|||
cy.get(".appTable .lock-status").eq(0).contains("Locked by you").click() |
|||
|
|||
cy.unlockApp({ owned : true }) |
|||
|
|||
cy.get(".appTable").should("exist") |
|||
cy.get(".lock-status").should('not.be.visible') |
|||
}) |
|||
|
|||
it("Should allow unlocking in the app overview screen", () => { |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
|
|||
cy.get(".appTable .app-row-actions button").contains("Edit").eq(0).click({force: true}) |
|||
cy.wait(1000) |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
|
|||
cy.get(".appTable .name").eq(0).click() |
|||
|
|||
cy.get(".lock-status").eq(0).contains("Locked by you").click() |
|||
|
|||
cy.unlockApp({ owned : true }) |
|||
|
|||
cy.get(".lock-status").should("not.be.visible") |
|||
}) |
|||
|
|||
it("Should reflect the deploy state of an app that hasn't been published.", () => { |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
|
|||
cy.get(".appTable .name").eq(0).click() |
|||
|
|||
cy.get(".header-right button.spectrum-Button[data-cy='view-app']").should("be.disabled") |
|||
|
|||
cy.get(".spectrum-Tabs-item.is-selected").contains("Overview") |
|||
cy.get(".overview-tab").should("be.visible") |
|||
|
|||
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") |
|||
cy.get(".status-text").contains("-") |
|||
}) |
|||
}) |
|||
|
|||
it("Should reflect the app deployment state", () => { |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
cy.get(".appTable .app-row-actions button").contains("Edit").eq(0).click({force: true}) |
|||
|
|||
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) |
|||
}); |
|||
|
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
cy.get(".appTable .name").eq(0).click() |
|||
|
|||
cy.get(".header-right button.spectrum-Button[data-cy='view-app']").should("not.be.disabled") |
|||
|
|||
cy.get(".overview-tab [data-cy='app-status']").within(() => { |
|||
cy.get(".status-display").contains("Published") |
|||
cy.get(".status-display .icon svg[aria-label='GlobeCheck']").should("exist") |
|||
cy.get(".status-text").contains("Last published a few seconds ago") |
|||
}) |
|||
}) |
|||
|
|||
it("Should reflect an application that has been unpublished", () => { |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
cy.get(".appTable .app-row-actions button").contains("Edit").eq(0).click({force: true}) |
|||
|
|||
cy.get(".deployment-top-nav svg[aria-label='Globe']") |
|||
.click({ force: true }) |
|||
|
|||
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.visit(`${Cypress.config().baseUrl}/builder`) |
|||
cy.get(".appTable .name").eq(0).click() |
|||
|
|||
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") |
|||
cy.get(".status-text").contains("Last published a few seconds ago") |
|||
}) |
|||
}) |
|||
|
|||
it("Should allow the editing of the application icon", () => { |
|||
cy.visit(`${Cypress.config().baseUrl}/builder`) |
|||
|
|||
cy.get(".appTable .name").eq(0).click() |
|||
|
|||
cy.get(".app-logo .edit-hover").should("exist").invoke("show").click() |
|||
|
|||
cy.customiseAppIcon() |
|||
|
|||
cy.get(".app-logo") |
|||
.within(() => { |
|||
cy.get('[aria-label]').eq(0).children() |
|||
.should('have.attr', 'xlink:href').and('not.contain', '#spectrum-icon-18-Apps') |
|||
cy.get(".app-icon") |
|||
.should('have.attr', 'style').and('contains', 'color') |
|||
}) |
|||
}) |
|||
|
|||
it("Should log out.", () => { |
|||
//You
|
|||
//Last edited a few seconds ago.
|
|||
cy.logOut(); |
|||
}) |
|||
}) |
|||
}) |
|||
Loading…
Reference in new issue