diff --git a/e2e/tests/regression/authorization/authenticate.js b/e2e/tests/regression/authorization/authenticate.js new file mode 100644 index 0000000..2b331f4 --- /dev/null +++ b/e2e/tests/regression/authorization/authenticate.js @@ -0,0 +1,21 @@ +/// +describe("When authenticating", () => { + it("logs in and logs out superuser without error", () => { + cy.visit("/login"); + + cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); + + // {enter} causes the form to submit + cy.get("input[name=password]") + .clear() + .type(`${Cypress.env("adminpassword")}{enter}`); + + //LOGOUT + cy.get("[data-cy=navicon]").click(); + cy.contains("AyaNova SuperUser"); + cy.get("[data-cy=logout]").click({force:true}); + cy.url().should("include", "/login"); + + //----------------------------------------------------- + }); +}); diff --git a/e2e/tests/smoke/smoke.js b/e2e/tests/smoke/smoke.js new file mode 100644 index 0000000..0950d6e --- /dev/null +++ b/e2e/tests/smoke/smoke.js @@ -0,0 +1,445 @@ +// Basic smoke test, visit every form to ensure they load +/// +describe("SMOKE", () => { + it.skip("Every form opens without error", () => { + cy.visit("/login"); + + cy.get("input[name=username]").clear().type(Cypress.env("adminusername")); + + // {enter} causes the form to submit + cy.get("input[name=password]") + .clear() + .type(`${Cypress.env("adminpassword")}{enter}`); + + //################# HOME + cy.visit("/home-dashboard"); + cy.url({ timeout: 10000 }).should("include", "/home-dashboard"); + + cy.visit("/home-search"); + cy.url({ timeout: 10000 }).should("include", "/home-search"); + cy.get("[data-cy=phrase]"); + + cy.visit("/home-schedule"); + cy.url({ timeout: 10000 }).should("include", "/home-schedule"); + cy.get("[data-cy=btnTodayHomeSchedule]"); + + cy.visit("/home-memos"); + cy.url({ timeout: 10000 }).should("include", "/home-memos"); + cy.get("[data-cy=memosTable]"); + + cy.visit("/home-memos/0"); //no reliable single id would work for existing + cy.url({ timeout: 10000 }).should("include", "/home-memos/0"); + cy.get("[data-cy=pickListSelectedUserId]"); + + cy.visit("/home-reminders"); + cy.url({ timeout: 10000 }).should("include", "/home-reminders"); + cy.get("[data-cy=remindersTable]"); + + cy.visit("/home-reminders/0"); + cy.url({ timeout: 10000 }).should("include", "/home-reminders/0"); + cy.get("[data-cy=name]"); + + cy.visit("/home-reviews"); + cy.url({ timeout: 10000 }).should("include", "/home-reviews"); + cy.get("[data-cy=reviewsTable]"); + + cy.visit("/home-reviews/8/1"); + cy.url({ timeout: 10000 }).should("include", "/home-reviews/8/1"); + cy.get("[data-cy=clickThru]"); + + cy.visit("/home-user-settings"); + cy.url({ timeout: 10000 }).should("include", "/home-user-settings"); + cy.get("[data-cy=emailAddress]"); + + cy.visit("/home-password"); + cy.url({ timeout: 10000 }).should("include", "/home-password"); + cy.get("[data-cy=loginName]"); + + cy.visit("/home-security"); + cy.url({ timeout: 10000 }).should("include", "/home-security"); + cy.get("[data-cy=tfa]"); + + //can't do this without reset code etc, just logs out + // cy.visit("/home-reset"); + // cy.url({ timeout: 10000 }).should("include", "/home-reset"); + // cy.get("[data-cy=loginName]"); + + cy.visit("/home-notify-subscriptions"); + cy.url({ timeout: 10000 }).should("include", "/home-notify-subscriptions"); + cy.get("[data-cy=subsTable]"); + + cy.visit("/home-notify-subscriptions/0"); + cy.url({ timeout: 10000 }).should( + "include", + "/home-notify-subscriptions/0" + ); + cy.get("[data-cy=eventType]"); + + cy.visit("/home-notifications"); + cy.url({ timeout: 10000 }).should("include", "/home-notifications"); + cy.get("[data-cy=notifications]"); + + cy.visit("/home-notify-direct"); + cy.url({ timeout: 10000 }).should("include", "/home-notify-direct"); + cy.get("[data-cy=pickListSelectedUserId]"); + + //################# CUSTOMERS + cy.visit("/cust-customers"); + cy.url({ timeout: 10000 }).should("include", "/cust-customers"); + cy.get("[data-cy=customersTable]"); + + cy.visit("/cust-customers/1"); + cy.url({ timeout: 10000 }).should("include", "/cust-customers/1"); + cy.get("[data-cy=name]"); + + cy.visit("/cust-customer-notes/1"); + cy.url({ timeout: 10000 }).should("include", "/cust-customer-notes/1"); + cy.get("[data-cy=clickThru]"); + + cy.visit("/cust-customer-note/0"); + cy.url({ timeout: 10000 }).should("include", "/cust-customer-note/0"); + cy.get("[data-cy=notes]"); + + cy.visit("/cust-head-offices"); + cy.url({ timeout: 10000 }).should("include", "/cust-head-offices"); + cy.get("[data-cy=headofficesTable]"); + + cy.visit("/cust-head-offices/1"); + cy.url({ timeout: 10000 }).should("include", "cust-head-offices/1"); + cy.get("[data-cy=name]"); + + cy.visit("/cust-users"); + cy.url({ timeout: 10000 }).should("include", "/cust-users"); + cy.get("[data-cy=custUsersTable]"); + + // cy.visit("/cust-users/0"); + // cy.url({ timeout: 10000 }).should("include", "/cust-users/0"); + // cy.get("[data-cy=customerId]"); + + //################# SERVICE + cy.visit("/svc-schedule"); + cy.url({ timeout: 10000 }).should("include", "/svc-schedule"); + cy.get("[data-cy=btnTodaySvcSchedule]"); + + cy.visit("/svc-workorders"); + cy.url({ timeout: 10000 }).should("include", "/svc-workorders"); + cy.get("[data-cy=workordersTable]"); + + cy.visit("/svc-workorders/1"); + cy.url({ timeout: 10000 }).should("include", "svc-workorders/1"); + cy.get("[data-cy=customerId]"); + + cy.visit("/svc-quotes"); + cy.url({ timeout: 10000 }).should("include", "/svc-quotes"); + cy.get("[data-cy=quotesTable]"); + + cy.visit("/svc-pms"); + cy.url({ timeout: 10000 }).should("include", "/svc-pms"); + cy.get("[data-cy=pmsTable]"); + + cy.visit("/svc-units"); + cy.url({ timeout: 10000 }).should("include", "/svc-units"); + cy.get("[data-cy=unitsTable]"); + + cy.visit("/svc-units/1"); + cy.url({ timeout: 10000 }).should("include", "/svc-units/1"); + cy.get("[data-cy=serial]"); + + cy.visit("/svc-unit-models"); + cy.url({ timeout: 10000 }).should("include", "/svc-unit-models"); + cy.get("[data-cy=unitmodelsTable]"); + + cy.visit("/svc-unit-models/1"); + cy.url({ timeout: 10000 }).should("include", "svc-unit-models/1"); + cy.get("[data-cy=name]"); + + cy.visit("/svc-loaners"); + cy.url({ timeout: 10000 }).should("include", "/svc-loaners"); + cy.get("[data-cy=loanUnitsTable]"); + + cy.visit("/svc-loaners/1"); + cy.url({ timeout: 10000 }).should("include", "/svc-loaners/1"); + cy.get("[data-cy=name]"); + + cy.visit("/svc-contracts"); + cy.url({ timeout: 10000 }).should("include", "/svc-contracts"); + cy.get("[data-cy=contractsTable]"); + + cy.visit("/svc-contracts/1"); + cy.url({ timeout: 10000 }).should("include", "/svc-contracts/1"); + cy.get("[data-cy=name]"); + + cy.visit("/svc-projects"); + cy.url({ timeout: 10000 }).should("include", "/svc-projects"); + cy.get("[data-cy=projectsTable]"); + + cy.visit("/svc-projects/1"); + cy.url({ timeout: 10000 }).should("include", "/svc-projects/1"); + cy.get("[data-cy=name]"); + + cy.visit("/svc-csr"); + cy.url({ timeout: 10000 }).should("include", "/svc-csr"); + cy.get("[data-cy=csrTable]"); + + cy.visit("/svc-csr/1"); + cy.url({ timeout: 10000 }).should("include", "/svc-csr/1"); + cy.get("[data-cy=name]"); + + //################# INVENTORY + cy.visit("/inv-parts"); + cy.url({ timeout: 10000 }).should("include", "/inv-parts"); + cy.get("[data-cy=partsTable]"); + + cy.visit("/inv-parts/1"); + cy.url({ timeout: 10000 }).should("include", "/inv-parts/1"); + cy.get("[data-cy=partNumber]"); + + cy.visit("/inv-purchase-orders"); + cy.url({ timeout: 10000 }).should("include", "/inv-purchase-orders"); + cy.get("[data-cy=purchaseordersTable]"); + + cy.visit("/inv-purchase-orders/1"); + cy.url({ timeout: 10000 }).should("include", "/inv-purchase-orders/1"); + cy.get("[data-cy=serial]"); + + cy.visit("/inv-part-inventory"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-inventory"); + cy.get("[data-cy=partInventoryTable]"); + + cy.visit("/inv-part-inventory-transactions"); + cy.url({ timeout: 10000 }).should( + "include", + "/inv-part-inventory-transactions" + ); + cy.get("[data-cy=partInventoryTransactionsTable]"); + + cy.visit("/inv-part-assemblies"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-assemblies"); + cy.get("[data-cy=partassemblysTable]"); + + cy.visit("/inv-part-assemblies/1"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-assemblies/1"); + cy.get("[data-cy=name]"); + + cy.visit("/inv-part-serials/1"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-serials/1"); + cy.get("[data-cy=selectedPartId]"); + + cy.visit("/inv-part-stock-levels/1"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-stock-levels/1"); + cy.get("[data-cy=selectedPartId]"); + + cy.visit("/inv-part-warehouses"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-warehouses"); + cy.get("[data-cy=partwarehousesTable]"); + + cy.visit("/inv-part-warehouses/1"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-warehouses/1"); + cy.get("[data-cy=name]"); + + cy.visit("/inv-part-adjustment"); + cy.url({ timeout: 10000 }).should("include", "/inv-part-adjustment"); + cy.get("[data-cy=description]"); + + //################# VENDORS + cy.visit("/vendors"); + cy.url({ timeout: 10000 }).should("include", "/vendors"); + cy.get("[data-cy=vendorsTable]"); + + cy.visit("/vendors/1"); + cy.url({ timeout: 10000 }).should("include", "vendors/1"); + cy.get("[data-cy=name]"); + + //################# ACCOUNTING + // cy.visit("/acc-service-banks"); + // cy.url({ timeout: 10000 }).should("include", "/acc-service-banks"); + // cy.get("[data-cy=serviceBanksTable]"); + + // cy.visit("/acc-service-banks/8/1"); + // cy.url({ timeout: 10000 }).should("include", "/acc-service-banks/8/1"); + // cy.get("[data-cy=clickThru]"); + + // cy.visit("/acc-service-banks/0/8/1"); + // cy.url({ timeout: 10000 }).should("include", "/acc-service-banks/0/8/1"); + // cy.get("[data-cy=name]"); + + cy.visit("/acc-service-rates"); + cy.url({ timeout: 10000 }).should("include", "/acc-service-rates"); + cy.get("[data-cy=serviceRatesTable]"); + + cy.visit("/acc-service-rates/1"); + cy.url({ timeout: 10000 }).should("include", "/acc-service-rates/1"); + cy.get("[data-cy=name]"); + + cy.visit("/acc-travel-rates"); + cy.url({ timeout: 10000 }).should("include", "/acc-travel-rates"); + cy.get("[data-cy=travelRatesTable]"); + + cy.visit("/acc-travel-rates/1"); + cy.url({ timeout: 10000 }).should("include", "/acc-travel-rates/1"); + cy.get("[data-cy=name]"); + + cy.visit("/acc-tax-codes"); + cy.url({ timeout: 10000 }).should("include", "/acc-tax-codes"); + cy.get("[data-cy=taxCodesTable]"); + + cy.visit("/acc-tax-codes/1"); + cy.url({ timeout: 10000 }).should("include", "/acc-tax-codes/1"); + cy.get("[data-cy=name]"); + + //################# ADMIN + cy.visit("/adm-global-settings"); + cy.url({ timeout: 10000 }).should("include", "/adm-global-settings"); + cy.get("[data-cy=filterCaseSensitive]"); + + cy.visit("/adm-global-select-templates"); + cy.url({ timeout: 10000 }).should( + "include", + "/adm-global-select-templates" + ); + cy.get("[data-cy=selectTemplate]"); + + cy.visit("/adm-global-logo"); + cy.url({ timeout: 10000 }).should("include", "/adm-global-logo"); + cy.get("[data-cy=uploadSmall]"); + + cy.visit("/adm-global-seeds"); + cy.url({ timeout: 10000 }).should("include", "/adm-global-seeds"); + cy.get("[data-cy=purchaseOrderNextSerial]"); + + cy.visit("/adm-license"); + cy.url({ timeout: 10000 }).should("include", "/adm-license"); + cy.get("[data-cy=licenseForm]"); + + cy.visit("/adm-users"); + cy.url({ timeout: 10000 }).should("include", "/adm-users"); + cy.get("[data-cy=usersTable]"); + + cy.visit("/adm-users/1"); + cy.url({ timeout: 10000 }).should("include", "/adm-users/1"); + cy.get("[data-cy=name]"); + + cy.visit("/adm-translations"); + cy.url({ timeout: 10000 }).should("include", "/adm-translations"); + cy.get("[data-cy=transTable]"); + + cy.visit("/adm-translations/1"); + cy.url({ timeout: 10000 }).should("include", "/adm-translations/1"); + cy.get("[data-cy=name]"); + + cy.visit("/adm-report-templates"); + cy.url({ timeout: 10000 }).should("include", "/adm-report-templates"); + cy.get("[data-cy=reportTemplatesTable]"); + + cy.visit("/report-edit/1"); + cy.url({ timeout: 10000 }).should("include", "/report-edit/1"); + cy.get("[data-cy=viewChange]"); + + cy.visit("/adm-attachments"); + cy.url({ timeout: 10000 }).should("include", "/adm-attachments"); + cy.get("[data-cy=attachTable]"); + + cy.visit("/adm-history"); + cy.url({ timeout: 10000 }).should("include", "/adm-history"); + cy.get("[data-cy=historyTable]"); + + cy.visit("/adm-import"); + cy.url({ timeout: 10000 }).should("include", "/adm-import"); + cy.get("[data-cy=ayaType]"); + + //################# OPERATIONS + cy.visit("/ops-backup"); + cy.url({ timeout: 10000 }).should("include", "/ops-backup"); + cy.get("[data-cy=backupTable]"); + + cy.visit("/ops-server-state"); + cy.url({ timeout: 10000 }).should("include", "/ops-server-state"); + cy.get("[data-cy=serverStateOpen]"); + + cy.visit("/ops-jobs"); + cy.url({ timeout: 10000 }).should("include", "/ops-jobs"); + cy.get("[data-cy=jobsTable]"); + + cy.visit("/ops-log"); + cy.url({ timeout: 10000 }).should("include", "/ops-log"); + cy.get("[data-cy=selectedLog]"); + + cy.visit("/ops-metrics"); + cy.url({ timeout: 10000 }).should("include", "/ops-metrics"); + cy.get("[data-cy=selectedTimePeriod]"); + + cy.visit("/ops-profile"); + cy.url({ timeout: 10000 }).should("include", "/ops-profile"); + cy.get("[data-cy=profileCard]"); + + cy.visit("/ops-notification-settings"); + cy.url({ timeout: 10000 }).should("include", "/ops-notification-settings"); + cy.get("[data-cy=smtpDeliveryActive]"); + + cy.visit("/ops-notify-queue"); + cy.url({ timeout: 10000 }).should("include", "/ops-notify-queue"); + cy.get("[data-cy=notifyQueueTable]"); + + cy.visit("/ops-view-configuration"); + cy.url({ timeout: 10000 }).should("include", "/ops-view-configuration"); + cy.get("[data-cy=configCard]"); + + //################# MISC + cy.visit("/about"); + cy.url({ timeout: 10000 }).should("include", "/about"); + cy.get("[data-cy=versionCard]"); + + cy.visit("/applog"); + cy.url({ timeout: 10000 }).should("include", "/applog"); + cy.get("[data-cy=logText]"); + + cy.visit("/customize/Customer"); + cy.url({ timeout: 10000 }).should("include", "/customize/Customer"); + cy.get("[data-cy=customizeForm]"); + + cy.visit("/data-list-column-view/CustomerDataList"); + cy.url({ timeout: 10000 }).should( + "include", + "/data-list-column-view/CustomerDataList" + ); + cy.get("[data-cy=dlcForm]"); + + cy.visit("/home-reviews/2/1"); + cy.url({ timeout: 10000 }).should("include", "/home-reviews/2/1"); + cy.get("[data-cy=reviewsTable]"); + + cy.visit("/history/3/1"); + cy.url({ timeout: 10000 }).should("include", "/history/3/1"); + cy.get("[data-cy=timeLine]"); + + cy.visit("/open/8/1"); + cy.url({ timeout: 10000 }).should("include", "/cust-customers/1"); + cy.get("[data-cy=name]"); + + cy.visit("/NOTFOUND"); + cy.contains("404"); + + //LOGOUT MANAGER USER + cy.get("[data-cy=navicon]").click(); + cy.get("[data-cy=logout]").click(); + cy.url({ timeout: 10000 }).should("include", "/login"); + + //CUSTOMER PAGES + cy.get("input[name=username]").clear().type("Customer"); + cy.get("input[name=password]").clear().type("Customer{enter}"); + + cy.url({ timeout: 10000 }).should("include", "/customer-csr"); + cy.get("[data-cy=csrTable]"); + + cy.visit("/customer-workorders"); + cy.url({ timeout: 10000 }).should("include", "/customer-workorders"); + cy.get("[data-cy=underconstruction]"); + + //LOGOUT + cy.get("[data-cy=navicon]").click(); + cy.get("[data-cy=logout]").click(); + cy.url({ timeout: 10000 }).should("include", "/login"); + + //----------------------------------------------------- + }); +});