diff --git a/tests/functional/cypress/e2e/form-apikey-cdogs.cy.js b/tests/functional/cypress/e2e/form-apikey-cdogs.cy.js index 64487e852..18c0b8d48 100644 --- a/tests/functional/cypress/e2e/form-apikey-cdogs.cy.js +++ b/tests/functional/cypress/e2e/form-apikey-cdogs.cy.js @@ -119,8 +119,7 @@ describe('Form Designer', () => { cy.get('[data-test="canRemoveForm"]').click(); cy.get('[data-test="continue-btn-continue"]').click(); - cy.waitForLoad(); - cy.waitForLoad(); + cy.wait(9000); cy.get('#logoutButton > .v-btn__content > span').click(); }) diff --git a/tests/functional/cypress/e2e/form-design-advancedfield.cy.js b/tests/functional/cypress/e2e/form-design-advancedfield.cy.js index b0d0d9c49..6814d9d75 100644 --- a/tests/functional/cypress/e2e/form-design-advancedfield.cy.js +++ b/tests/functional/cypress/e2e/form-design-advancedfield.cy.js @@ -193,7 +193,7 @@ describe('Form Designer', () => { const coords = $el[0].getBoundingClientRect(); cy.get('[data-type="bcaddress"]') .trigger('mousedown', { which: 1}, { force: true }) - .trigger('mousemove', coords.x, +30, { force: true }) + .trigger('mousemove', coords.x, -30, { force: true }) //.trigger('mousemove', coords.y, +100, { force: true }) .trigger('mouseup', { force: true }); cy.waitForLoad(); diff --git a/tests/functional/cypress/e2e/form-submission-export.cy.js b/tests/functional/cypress/e2e/form-submission-export.cy.js index b9c99a3b9..22ec3b3f2 100644 --- a/tests/functional/cypress/e2e/form-submission-export.cy.js +++ b/tests/functional/cypress/e2e/form-submission-export.cy.js @@ -120,15 +120,18 @@ describe("Form Designer", () => { cy.get(".mdi-list-box-outline").click(); cy.waitForLoad(); //Export submission files - cy.get(".mdi-download").click(); + //Verify submission file name cy.get("h3").then(($elem) => { const rem = $elem.text(); cy.log(rem); const remname = rem + "_submissions.json"; cy.wait(2000); + cy.get(".mdi-download").click({ force: true }); + cy.wait(2000); cy.get(".ml-1").contains(remname); }); + cy.get(':nth-child(2) > .v-col > .v-input > .v-input__control > .v-selection-control-group > :nth-child(2) > .v-label > .radioboxLabelStyle').click(); cy.get('.v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input').contains('1'); cy.contains('form.submissionId').should('be.visible'); diff --git a/tests/functional/cypress/e2e/form-team-email-management.cy.js b/tests/functional/cypress/e2e/form-team-email-management.cy.js new file mode 100644 index 000000000..3f09a2f96 --- /dev/null +++ b/tests/functional/cypress/e2e/form-team-email-management.cy.js @@ -0,0 +1,216 @@ +import "cypress-keycloak-commands"; +import "cypress-drag-drop"; +import { formsettings } from "../support/login.js"; + +const depEnv = Cypress.env("depEnv"); + +Cypress.Commands.add("waitForLoad", () => { + const loaderTimeout = 60000; + + cy.get(".nprogress-busy", { timeout: loaderTimeout }).should("not.exist"); +}); + +describe("Form Designer", () => { + beforeEach(() => { + cy.on("uncaught:exception", (err, runnable) => { + // Form.io throws an uncaught exception for missing projectid + // Cypress catches it as undefined: undefined so we can't get the text + console.log(err); + return false; + }); + }); + it("Visits the form settings page", () => { + cy.viewport(1000, 1100); + cy.waitForLoad(); + + formsettings(); + }); + // Publish a simple form with Simplebc Address component + it("Checks team management before form publish", () => { + cy.viewport(1000, 1100); + cy.waitForLoad(); + + cy.get("button").contains("BC Government").click(); + cy.get("div.formio-builder-form").then(($el) => { + const coords = $el[0].getBoundingClientRect(); + cy.get('[data-key="simplebcaddress"]') + .trigger("mousedown", { which: 1 }, { force: true }) + .trigger("mousemove", coords.x, -550, { force: true }) + //.trigger('mousemove', coords.y, +100, { force: true }) + .trigger("mouseup", { force: true }); + cy.waitForLoad(); + cy.get("button").contains("Save").click(); + }); + // Form saving + let savedButton = cy.get("[data-cy=saveButton]"); + expect(savedButton).to.not.be.null; + savedButton.trigger("click"); + cy.wait(5000); + // Filter the newly created form + cy.location('search').then(search => { + + let arr = search.split('='); + let arrayValues = arr[1].split('&'); + cy.log(arrayValues[0]); + cy.visit(`/${depEnv}/form/manage?f=${arrayValues[0]}`); + cy.waitForLoad(); + }); + + //Go to Team Management + + cy.get(".mdi-account-multiple").click(); + cy.get(".mdi-account-plus").click(); + //Search for a member to add + cy.get( + ".v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input" + ).click(); + cy.get( + ".v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input" + ).type("NIM"); + cy.get(":nth-child(2) > .v-chip__content").should("be.visible"); + cy.get(":nth-child(4) > .v-chip__content").should("be.visible"); + cy.get(":nth-child(5) > .v-chip__content").should("be.visible"); + cy.contains("John, Nimya 1 CITZ:EX (nimya.1.john@gov.bc.ca)").click(); + cy.get(":nth-child(2) > .v-chip__content").click(); + cy.get(":nth-child(4) > .v-chip__content").click(); + cy.get(":nth-child(5) > .v-chip__content").click(); + cy.get(".v-btn--elevated > .v-btn__content > span").click(); + // Verify member is added with proper roles + cy.get('[data-test="ApproverRoleCheckbox"]').should("be.visible"); + cy.get('[data-test="ReviewerRoleCheckbox"]').should("exist"); + cy.get('[data-test="TeamManagerRoleCheckbox"]').should("be.visible"); + cy.get('[data-test="ApproverRoleCheckbox"]').click({ + multiple: true, + force: true, + }); + //Manage column views + + cy.get(".mdi-view-column").click(); + + cy.get("table").contains("td", "Reviewer").should("be.visible"); + cy.get("table").contains("td", "Approver").should("be.visible"); + + cy.get( + '[data-test="filter-table"] > .v-table__wrapper > table > tbody > :nth-child(1) > :nth-child(2)' + ).click(); + cy.waitForLoad(); + + //Column view management + + cy.get(".search").click(); + cy.get(".search").type("Designer"); + cy.get("table").contains("td", "Designer").should("be.visible"); + cy.get('[data-test="save-btn"] > .v-btn__content').click(); + cy.waitForLoad(); + + //Remove a user from Roles + + cy.get('tbody > :nth-child(1) > [style="width: 1rem;"] > .v-btn').click(); + cy.waitForLoad(); + //cy.contains('REMOVE').click(); + cy.get( + '[data-test="continue-btn-continue"] > .v-btn__content > span' + ).click(); + cy.waitForLoad(); + cy.contains("NIMJOHN").should("not.exist"); + cy.get('[data-test="OwnerRoleCheckbox"]').click(); + cy.wait(1000); + cy.get(".v-alert__content") + .contains("Can't remove the only owner.") + .should("be.visible"); + cy.get(".v-alert__close").click(); + + + //Email management functionality + cy.get(".mdi-cog").click(); + cy.wait(2000); + cy.get(".mdi-email").click(); + cy.wait(2000); + cy.get('input[type="text"]').then(($el) => { + const sub = $el[1]; + const titl = $el[2]; + + //cy.get(sub).click({force: true}); + cy.get(sub).should("have.value", "{{ form.name }} Accepted"); + cy.get(titl).should("have.value", "{{ form.name }} Accepted"); + cy.get(sub).type("{selectall}{backspace}"); + cy.get("div") + .contains("Please enter a Subject line for the email") + .should("be.visible"); + cy.get(titl).type("{selectall}{backspace}"); + cy.get("div") + .contains("Please enter a Title for the email") + .should("be.visible"); + cy.get("textarea").then(($el) => { + const body = $el[0]; + cy.get(body).type("{selectall}{backspace}"); + cy.get("div") + .contains("Please enter a Body for the email") + .should("be.visible"); + cy.get(body).type("Thank you for submission, Click on this link"); + }); + cy.get(sub).type("CHEFS submission Subject"); + cy.get(titl).type("CHEFS submission Title"); + cy.get(".v-form > .v-btn").should("be.enabled"); + cy.get(".v-form > .v-btn").click(); + }); + }); + + it("Checks team management after form publish", () => { + cy.viewport(1000, 1100); + cy.waitForLoad(); + cy.get(".mdi-cog").click(); + //Publish the form + cy.get(".v-label > span").click(); + + cy.get("span").contains("Publish Version 1"); + + cy.contains("Continue").should("be.visible"); + cy.contains("Continue").trigger("click"); + + cy.get(".mdi-account-multiple").click(); + cy.get(".mdi-account-plus").click(); + //Search for a member to add + cy.get( + ".v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input" + ).click(); + cy.get( + ".v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input" + ).type("NIM"); + cy.get(":nth-child(2) > .v-chip__content").should("be.visible"); + cy.get(":nth-child(4) > .v-chip__content").should("be.visible"); + cy.get(":nth-child(5) > .v-chip__content").should("be.visible"); + cy.contains("John, Nimya 1 CITZ:EX (nimya.1.john@gov.bc.ca)").click(); + cy.get(":nth-child(2) > .v-chip__content").click(); + cy.wait(3000); + cy.get(":nth-child(3) > .v-chip__content").click(); + cy.wait(3000); + cy.get(":nth-child(4) > .v-chip__content").click(); + cy.wait(3000); + cy.get(":nth-child(5) > .v-chip__content").click(); + cy.wait(3000); + cy.get(".v-btn--elevated > .v-btn__content > span").click(); + cy.wait(3000); + /* + cy.get('[data-test="OwnerRoleCheckbox"]').then(($el) => { + const ownercheck = $el[0]; + const ownercheck1 = $el[1]; + + cy.get(ownercheck).click(); + cy.get(ownercheck1).click(); + + + }); + cy.get(".v-alert__content") + .contains("You can't update an owner's roles.") + .should("be.visible"); + */ + cy.get(".mdi-cog").click(); + + cy.waitForLoad(); + //Delete form after test run + cy.get(".mdi-delete").click(); + cy.get('[data-test="continue-btn-continue"]').click(); + cy.get("#logoutButton > .v-btn__content > span").click(); + }); +}); diff --git a/tests/functional/cypress/e2e/form-team-management.cy.js b/tests/functional/cypress/e2e/form-team-management.cy.js deleted file mode 100644 index 8c764fe05..000000000 --- a/tests/functional/cypress/e2e/form-team-management.cy.js +++ /dev/null @@ -1,184 +0,0 @@ -import 'cypress-keycloak-commands'; -import 'cypress-drag-drop'; -import { formsettings } from '../support/login.js'; - -const depEnv = Cypress.env('depEnv'); - - -Cypress.Commands.add('waitForLoad', () => { - const loaderTimeout = 60000; - - cy.get('.nprogress-busy', { timeout: loaderTimeout }).should('not.exist'); -}); - - - -describe('Form Designer', () => { - - beforeEach(()=>{ - - - - cy.on('uncaught:exception', (err, runnable) => { - // Form.io throws an uncaught exception for missing projectid - // Cypress catches it as undefined: undefined so we can't get the text - console.log(err); - return false; - }); - }); - it('Visits the form settings page', () => { - - - cy.viewport(1000, 1100); - cy.waitForLoad(); - - formsettings(); - - - }); -// Publish a simple form with Simplebc Address component - it('Checks team management before form publish', () => { - cy.viewport(1000, 1100); - cy.waitForLoad(); - - cy.get('button').contains('BC Government').click(); - cy.get('div.formio-builder-form').then($el => { - const coords = $el[0].getBoundingClientRect(); - cy.get('[data-key="simplebcaddress"]') - .trigger('mousedown', { which: 1}, { force: true }) - .trigger('mousemove', coords.x, -550, { force: true }) - //.trigger('mousemove', coords.y, +100, { force: true }) - .trigger('mouseup', { force: true }); - cy.waitForLoad(); - //cy.get('input[name="data[label]"]').type('s'); - cy.get('button').contains('Save').click(); - //cy.get('.btn-success').click(); - - - }); - cy.intercept('GET', `/${depEnv}/api/v1/forms/*`).as('getForm'); - // Form saving - let savedButton = cy.get('[data-cy=saveButton]'); - expect(savedButton).to.not.be.null; - savedButton.trigger('click'); - cy.waitForLoad(); - - - // Go to My forms - cy.wait('@getForm').then(()=>{ - let userFormsLinks = cy.get('[data-cy=userFormsLinks]'); - expect(userFormsLinks).to.not.be.null; - userFormsLinks.trigger('click'); - }); - // Filter the newly created form - cy.location('search').then(search => { - //let pathName = fullUrl.pathname - let arr = search.split('='); - let arrayValues = arr[1].split('&'); - cy.log(arrayValues[0]); - //cy.log(arrayValues[1]); - //cy.log(arrayValues[2]); - cy.visit(`/${depEnv}/form/manage?f=${arrayValues[0]}`); - cy.waitForLoad(); - }) - - //Go to Team Management - - cy.get('.mdi-account-multiple').click(); - cy.get('.mdi-account-plus').click(); - //Search for a member to add - cy.get('.v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input').click(); - cy.get('.v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input').type('NIM'); - cy.get(':nth-child(2) > .v-chip__content').should('be.visible'); - cy.get(':nth-child(4) > .v-chip__content').should('be.visible'); - cy.get(':nth-child(5) > .v-chip__content').should('be.visible'); - cy.contains('John, Nimya 1 CITZ:EX (nimya.1.john@gov.bc.ca)').click(); - cy.get(':nth-child(2) > .v-chip__content').click(); - cy.get(':nth-child(4) > .v-chip__content').click(); - cy.get(':nth-child(5) > .v-chip__content').click(); - cy.get('.v-btn--elevated > .v-btn__content > span').click(); - // Verify member is added with proper roles - cy.get('[data-test="ApproverRoleCheckbox"]').should('be.visible'); - cy.get('[data-test="ReviewerRoleCheckbox"]').should('exist'); - cy.get('[data-test="TeamManagerRoleCheckbox"]').should('be.visible'); - cy.get('[data-test="ApproverRoleCheckbox"]').click({multiple:true,force:true}); - //Manage column views - - cy.get('.mdi-view-column').click(); - - - cy.get('table').contains('td','Reviewer').should('be.visible'); - cy.get('table').contains('td','Approver').should('be.visible'); - - - cy.get('[data-test="filter-table"] > .v-table__wrapper > table > tbody > :nth-child(1) > :nth-child(2)').click(); - cy.waitForLoad(); - - //Column view management - - cy.get('.search').click(); - cy.get('.search').type('Designer'); - cy.get('table').contains('td','Designer').should('be.visible'); - cy.get('[data-test="save-btn"] > .v-btn__content').click(); - cy.waitForLoad(); - - //Remove a user from Roles - cy.get('tbody > :nth-child(1) > [style="width: 1rem;"] > .v-btn').click(); - cy.waitForLoad(); - //cy.contains('REMOVE').click(); - cy.get('[data-test="continue-btn-continue"] > .v-btn__content > span').click(); - cy.waitForLoad(); - cy.contains('NIMJOHN').should('not.exist'); - - }); - - it('Checks team management after form publish', () => { - cy.viewport(1000, 1100); - cy.waitForLoad(); - - - cy.location('search').then(search => { - //let pathName = fullUrl.pathname - let arr = search.split('='); - let arrayValues = arr[1].split('&'); - cy.log(arrayValues[0]); - - cy.visit(`/${depEnv}/form/manage?f=${arrayValues[0]}`); - cy.waitForLoad(); - cy.log(arrayValues[0]); - //Publish the form - cy.get('.v-label > span').click(); - - cy.get('span').contains('Publish Version 1'); - - cy.contains('Continue').should('be.visible'); - cy.contains('Continue').trigger('click'); - - - cy.get('.mdi-account-multiple').click(); - cy.get('.mdi-account-plus').click(); - //Search for a member to add - cy.get('.v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input').click(); - cy.get('.v-col > .v-input > .v-input__control > .v-field > .v-field__field > .v-field__input').type('NIM'); - cy.get(':nth-child(2) > .v-chip__content').should('be.visible'); - cy.get(':nth-child(4) > .v-chip__content').should('be.visible'); - cy.get(':nth-child(5) > .v-chip__content').should('be.visible'); - cy.contains('John, Nimya 1 CITZ:EX (nimya.1.john@gov.bc.ca)').click(); - cy.get(':nth-child(2) > .v-chip__content').click(); - cy.get(':nth-child(4) > .v-chip__content').click(); - cy.get(':nth-child(5) > .v-chip__content').click(); - cy.get('.v-btn--elevated > .v-btn__content > span').click(); - cy.waitForLoad(); - cy.visit(`/${depEnv}`); - cy.get('[data-cy="userFormsLinks"]').click(); - cy.visit(`/${depEnv}/form/manage?f=${arrayValues[0]}`); - cy.waitForLoad(); - //Delete form after test run - cy.get('.mdi-delete').click(); - cy.get('[data-test="continue-btn-continue"]').click(); - cy.get('#logoutButton > .v-btn__content > span').click(); - }) - - }); - -}); \ No newline at end of file