Merge pull request #5978 from Budibase/cypress-testing

Lead Generation Form Template Test + Refactor
This commit is contained in:
Mitch-Budibase 2022-05-24 10:28:01 +01:00 committed by GitHub
commit 027ea9f871
19 changed files with 91 additions and 152 deletions

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter HR Templates // Filter HR Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -8,13 +8,13 @@ filterTests(["all"], () => {
before(() => { before(() => {
cy.login() cy.login()
cy.deleteApp(templateName) cy.deleteApp(templateName)
cy.visit(`${Cypress.config().baseUrl}/builder`, { // Template navigation
cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`, {
onBeforeLoad(win) { onBeforeLoad(win) {
cy.stub(win, 'open') cy.stub(win, 'open')
} }
}) })
cy.wait(2000) cy.wait(2000)
cy.templateNavigation()
}) })
it("should create and publish app with Job Application Tracker template", () => { it("should create and publish app with Job Application Tracker template", () => {
@ -35,19 +35,10 @@ filterTests(["all"], () => {
cy.get(".spectrum-Button").contains("Create app").click({ force: true }) cy.get(".spectrum-Button").contains("Create app").click({ force: true })
}) })
// Publish App // Publish App & Verify it opened
cy.wait(2000) // Wait for app to generate cy.wait(2000) // Wait for app to generate
cy.get(".toprightnav").contains("Publish").click({ force: true }) cy.publishApp(true)
cy.get(".spectrum-Dialog-grid").within(() => { cy.window().its('open').should('be.calledOnce')
cy.get(".spectrum-Button").contains("Publish").click({ force: true })
})
// Verify Published app
cy.wait(2000) // Wait for App to publish and modal to appear
cy.get(".spectrum-Dialog-grid").within(() => {
cy.get(".spectrum-Button").contains("View App").click({ force: true })
cy.window().its('open').should('be.calledOnce')
})
}) })
it("should add active/inactive vacancies", () => { it("should add active/inactive vacancies", () => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter IT Templates // Filter IT Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -8,13 +8,13 @@ filterTests(["all"], () => {
before(() => { before(() => {
cy.login() cy.login()
cy.deleteApp(templateName) cy.deleteApp(templateName)
cy.visit(`${Cypress.config().baseUrl}/builder`, { // Template navigation
cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`, {
onBeforeLoad(win) { onBeforeLoad(win) {
cy.stub(win, 'open') cy.stub(win, 'open')
} }
}) })
cy.wait(2000) cy.wait(2000)
cy.templateNavigation()
}) })
it("should create and publish app with IT Ticketing System template", () => { it("should create and publish app with IT Ticketing System template", () => {
@ -35,19 +35,10 @@ filterTests(["all"], () => {
cy.get(".spectrum-Button").contains("Create app").click({ force: true }) cy.get(".spectrum-Button").contains("Create app").click({ force: true })
}) })
// Publish App // Publish App & Verify it opened
cy.wait(2000) // Wait for app to generate cy.wait(2000) // Wait for app to generate
cy.get(".toprightnav").contains("Publish").click({ force: true }) cy.publishApp(true)
cy.get(".spectrum-Dialog-grid").within(() => { cy.window().its('open').should('be.calledOnce')
cy.get(".spectrum-Button").contains("Publish").click({ force: true })
})
// Verify Published app
cy.wait(2000) // Wait for App to publish and modal to appear
cy.get(".spectrum-Dialog-grid").within(() => {
cy.get(".spectrum-Button").contains("View App").click({ force: true })
cy.window().its('open').should('be.calledOnce')
})
}) })
xit("should filter tickets by status", () => { xit("should filter tickets by status", () => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Admin Panels Templates // Filter Admin Panels Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Approval Apps Templates // Filter Approval Apps Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,14 +7,8 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Business Apps Templates // Filter Business Apps Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {
cy.get('[data-cy="Business Apps"]').click() cy.get('[data-cy="Business Apps"]').click()

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Directories Templates // Filter Directories Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Forms Templates // Filter Forms Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Healthcare Templates // Filter Healthcare Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Legal Templates // Filter Legal Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Logistics Templates // Filter Logistics Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Manufacturing Templates // Filter Manufacturing Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -0,0 +1,44 @@
import filterTests from "../../../support/filterTests"
filterTests(["all"], () => {
context("Lead Generation Form Template Functionality", () => {
const templateName = "Lead Generation Form"
const templateNameParsed = templateName.toLowerCase().replace(/\s+/g, '-')
before(() => {
cy.login()
cy.deleteApp(templateName)
// Template navigation
cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`, {
onBeforeLoad(win) {
cy.stub(win, 'open')
}
})
cy.wait(2000)
})
it("should create and publish app with Lead Generation Form template", () => {
// Select Lead Generation Form template
cy.get(".template-thumbnail-text")
.contains(templateName).parentsUntil(".template-grid").within(() => {
cy.get(".spectrum-Button").contains("Use template").click({ force: true })
})
// Confirm URL matches template name
const appUrl = cy.get(".app-server")
appUrl.invoke('text').then(appUrlText => {
expect(appUrlText).to.equal(`${Cypress.config().baseUrl}/app/` + templateNameParsed)
})
// Create App
cy.get(".spectrum-Dialog-grid").within(() => {
cy.get(".spectrum-Button").contains("Create app").click({ force: true })
})
// Publish App & Verify it opened
cy.wait(2000) // Wait for app to generate
cy.publishApp(true)
cy.window().its('open').should('be.calledOnce')
})
})
})

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Marketing Templates // Filter Marketing Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Operations Templates // Filter Operations Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -7,21 +7,15 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => { // Filter Portal Templates
if (val.length > 0) { cy.get(".template-category-filters").within(() => {
cy.get(".spectrum-Button").contains("Templates").click({force: true}) cy.get('[data-cy="Portal"]').click()
} })
})
}) })
it("should verify the details option for Portal templates", () => { it("should verify the details option for Portal templates", () => {
// Filter Portal Templates
cy.get(".template-category-filters").within(() => {
cy.get('[data-cy="Portal"]').click()
})
cy.get(".template-grid").find(".template-card").its('length') cy.get(".template-grid").find(".template-card").its('length')
.then(len => { .then(len => {
for (let i = 0; i < len; i++) { for (let i = 0; i < len; i++) {

View File

@ -7,13 +7,7 @@ filterTests(["all"], () => {
cy.login() cy.login()
// Template navigation // Template navigation
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`) cy.visit(`${Cypress.config().baseUrl}/builder/portal/apps/templates`)
.its("body")
.then(val => {
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({force: true})
}
})
// Filter Professional Services Templates // Filter Professional Services Templates
cy.get(".template-category-filters").within(() => { cy.get(".template-category-filters").within(() => {

View File

@ -35,7 +35,7 @@ Cypress.Commands.add("login", () => {
Cypress.Commands.add("closeModal", () => { Cypress.Commands.add("closeModal", () => {
cy.get(".spectrum-Modal").within(() => { cy.get(".spectrum-Modal").within(() => {
cy.get(".close-icon").click() cy.get(".close-icon").click()
cy.wait(500) cy.wait(1000) // Wait for modal to close
}) })
}) })
@ -222,6 +222,21 @@ Cypress.Commands.add("createTestTableWithData", () => {
cy.addColumn("dog", "age", "Number") cy.addColumn("dog", "age", "Number")
}) })
Cypress.Commands.add("publishApp", (viewApp = false) => {
cy.get(".toprightnav").contains("Publish").click({ force: true })
cy.get(".spectrum-Dialog-grid").within(() => {
cy.get(".spectrum-Button").contains("Publish").click({ force: true })
})
cy.wait(2000) // Wait for App to publish and modal to appear
cy.get(".spectrum-Dialog-grid").within(() => {
if (viewApp) {
cy.get(".spectrum-Button").contains("View App").click({ force: true })
} else {
cy.get(".spectrum-Button").contains("Done").click({ force: true })
}
})
})
Cypress.Commands.add("createTable", (tableName, initialTable) => { Cypress.Commands.add("createTable", (tableName, initialTable) => {
if (!initialTable) { if (!initialTable) {
cy.navigateToDataSection() cy.navigateToDataSection()
@ -671,15 +686,3 @@ Cypress.Commands.add("createRestQuery", (method, restUrl, queryPrettyName) => {
.should("contain", method) .should("contain", method)
.and("contain", queryPrettyName) .and("contain", queryPrettyName)
}) })
Cypress.Commands.add("templateNavigation", () => {
// Navigates to templates section
cy.request(`${Cypress.config().baseUrl}/api/applications?status=all`)
.its("body")
.then(val => {
// Templates button needs clicked if apps already exist
if (val.length > 0) {
cy.get(".spectrum-Button").contains("Templates").click({ force: true })
}
})
})