diff --git a/e2e/tests/testAnalyticsIntegration.spec.ts b/e2e/tests/testAnalyticsIntegration.spec.ts index 7bb8694c..a242a61d 100644 --- a/e2e/tests/testAnalyticsIntegration.spec.ts +++ b/e2e/tests/testAnalyticsIntegration.spec.ts @@ -1,6 +1,7 @@ import { test, expect } from '@playwright/test'; import { HomePage } from '../utils/functions/testBase'; import { patientName } from '../utils/functions/testBase'; +import { E2E_BASE_URL, E2E_ANALYTICS_URL } from '../utils/configs/globalSetup'; let homePage: HomePage; @@ -27,31 +28,13 @@ test('Adding an OpenMRS patient syncs patient into patients table in Superset', await homePage.clearSQLEditor(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.createPatient(); await homePage.searchOpenMRSPatientID(); const patientIdentifier = await page.locator('#demographics section p:nth-child(2)').textContent(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}/superset/sqllab`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ANALYTICS_URL_QA}/superset/sqllab`); - break; - default: - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}/superset/sqllab`); - } + await page.goto(`${E2E_ANALYTICS_URL}/superset/sqllab`); await homePage.clearSQLEditor(); await page.getByRole('textbox').first().fill(patientsCountQuery); await homePage.runSQLQuery(); @@ -96,29 +79,11 @@ test('Starting an OpenMRS visit syncs visit into visits table in Superset', asyn await homePage.clearSQLEditor(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.startPatientVisit(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}/superset/sqllab`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ANALYTICS_URL_URL}/superset/sqllab`); - break; - default: - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}/superset/sqllab`); - } + await page.goto(`${E2E_ANALYTICS_URL}/superset/sqllab`); await homePage.clearSQLEditor(); await page.getByRole('textbox').first().fill(visitsCountQuery); await homePage.runSQLQuery(); @@ -176,16 +141,7 @@ test('Creating an OpenMRS order syncs order into orders table in Superset', asyn await homePage.clearSQLEditor(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.goToLabOrderForm(); await page.getByRole('button', { name: 'Add', exact: true }).click(); @@ -193,16 +149,7 @@ test('Creating an OpenMRS order syncs order into orders table in Superset', asyn await homePage.saveLabOrder(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}/superset/sqllab`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ANALYTICS_URL_QA}/superset/sqllab`); - break; - default: - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}/superset/sqllab`); - } + await page.goto(`${E2E_ANALYTICS_URL}/superset/sqllab`); await homePage.clearSQLEditor(); await page.getByRole('textbox').first().fill(ordersCountQuery); await homePage.runSQLQuery(); @@ -260,16 +207,7 @@ test('Adding an OpenMRS encounter syncs encounter into encounters table in Super await homePage.clearSQLEditor(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.goToLabOrderForm(); await page.getByRole('button', { name: 'Add', exact: true }).click(); @@ -277,16 +215,7 @@ test('Adding an OpenMRS encounter syncs encounter into encounters table in Super await homePage.saveLabOrder(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}/superset/sqllab`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ANALYTICS_URL_QA}/superset/sqllab`); - break; - default: - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}/superset/sqllab`); - } + await page.goto(`${E2E_ANALYTICS_URL}/superset/sqllab`); await homePage.clearSQLEditor(); await page.getByRole('textbox').first().fill(encountersCountQuery); await homePage.runSQLQuery(); @@ -372,30 +301,12 @@ test('Adding an OpenMRS condition syncs condition into conditions table in Super await homePage.clearSQLEditor(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.addPatientCondition(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}/superset/sqllab`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ANALYTICS_URL_QA}/superset/sqllab`); - break; - default: - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}/superset/sqllab`); - } + await page.goto(`${E2E_ANALYTICS_URL}/superset/sqllab`); await homePage.clearSQLEditor(); await page.getByRole('textbox').first().fill(conditionsCountQuery); await homePage.runSQLQuery(); @@ -449,30 +360,12 @@ test('Adding an OpenMRS observation syncs observation into observations table in await homePage.clearSQLEditor(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.addPatientBiometrics(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}/superset/sqllab`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ANALYTICS_URL_QA}/superset/sqllab`); - break; - default: - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}/superset/sqllab`); - } + await page.goto(`${E2E_ANALYTICS_URL}/superset/sqllab`); await homePage.clearSQLEditor(); await page.getByRole('textbox').first().fill(observationsCountQuery); await homePage.runSQLQuery(); @@ -557,30 +450,12 @@ test('Adding an OpenMRS appointment syncs appointment into appointments table in await homePage.clearSQLEditor(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.addPatientAppointment(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}/superset/sqllab`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ANALYTICS_URL_QA}/superset/sqllab`); - break; - default: - await page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}/superset/sqllab`); - } + await page.goto(`${E2E_ANALYTICS_URL}/superset/sqllab`); await homePage.clearSQLEditor(); await page.getByRole('textbox').first().fill(appointmentsCountQuery); await homePage.runSQLQuery(); diff --git a/e2e/tests/testKeycloakIntegration.spec.ts b/e2e/tests/testKeycloakIntegration.spec.ts index 98071234..7fb1995e 100644 --- a/e2e/tests/testKeycloakIntegration.spec.ts +++ b/e2e/tests/testKeycloakIntegration.spec.ts @@ -1,6 +1,7 @@ import { test, expect } from '@playwright/test'; import { HomePage } from '../utils/functions/testBase'; import { randomOpenMRSRoleName } from '../utils/functions/testBase'; +import { E2E_BASE_URL, E2E_KEYCLOAK_URL } from '../utils/configs/globalSetup'; let homePage: HomePage; @@ -13,16 +14,7 @@ test.beforeEach(async ({ page }) => { test('Adding an OpenMRS role syncs the role into Keycloak', async ({ page }) => { // setup - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/admin/users/role.list`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/admin/users/role.list`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/admin/users/role.list`); - } + await page.goto(`${E2E_BASE_URL}/openmrs/admin/users/role.list`); const homePage = new HomePage(page); await homePage.addOpenMRSRole(); @@ -47,16 +39,7 @@ test('Adding an OpenMRS role syncs the role into Keycloak', async ({ page }) => test('Updating a synced OpenMRS role updates the corresponding role in Keycloak', async ({ page }) => { // setup - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/admin/users/role.list`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/admin/users/role.list`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/admin/users/role.list`); - } + await page.goto(`${E2E_BASE_URL}/openmrs/admin/users/role.list`); const homePage = new HomePage(page); await homePage.addOpenMRSRole(); @@ -75,29 +58,11 @@ test('Updating a synced OpenMRS role updates the corresponding role in Keycloak' await expect(page.getByText('Application: Uses Patient Summary')).toBeTruthy(); await expect(page.getByText('Organizational: Registration Clerk')).toBeTruthy(); await expect(page.getByText('Application: Records Allergies')).toBeTruthy(); - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/admin/users/role.list`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/admin/users/role.list`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/admin/users/role.list`); - } + await page.goto(`${E2E_BASE_URL}/openmrs/admin/users/role.list`); await homePage.updateOpenMRSRole(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_KEYCLOAK_DEMO_URL}/admin/master/console`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_KEYCLOAK_QA_URL}/admin/master/console`); - break; - default: - await page.goto(`${process.env.E2E_KEYCLOAK_URL_DEV}/admin/master/console`); - } + await page.goto(`${E2E_KEYCLOAK_URL}/admin/master/console`); await homePage.goToClients(); await page.getByRole('link', { name: 'openmrs', exact: true }).click(); await page.getByTestId('rolesTab').click(); @@ -111,16 +76,7 @@ test('Updating a synced OpenMRS role updates the corresponding role in Keycloak' test('Deleting a synced OpenMRS role deletes the corresponding role in Keycloak', async ({ page }) => { // setup - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/admin/users/role.list`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/admin/users/role.list`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/admin/users/role.list`); - } + await page.goto(`${E2E_BASE_URL}/openmrs/admin/users/role.list`); const homePage = new HomePage(page); await homePage.addOpenMRSRole(); @@ -142,31 +98,13 @@ test('Deleting a synced OpenMRS role deletes the corresponding role in Keycloak' await homePage.deleteOpenMRSRole(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_KEYCLOAK_URL_DEMO}/admin/master/console`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_KEYCLOAK_URL_QA}/admin/master/console`); - break; - default: - await page.goto(`${process.env.E2E_KEYCLOAK_URL_DEV}/admin/master/console`); - } + await page.goto(`${E2E_KEYCLOAK_URL}/admin/master/console`); await homePage.goToClients(); await page.getByRole('link', { name: 'openmrs', exact: true }).click(); await page.getByTestId('rolesTab').click(); const roleName = await page.locator('table tbody tr:nth-child(1) td:nth-child(1) a'); await expect(roleName).not.toHaveText(`${randomOpenMRSRoleName.roleName}`); - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/admin/users/role.list`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/admin/users/role.list`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/admin/users/role.list`); - } + await page.goto(`${E2E_BASE_URL}/openmrs/admin/users/role.list`); await homePage.addOpenMRSRole(); }); diff --git a/e2e/tests/testOdooIntegration.spec.ts b/e2e/tests/testOdooIntegration.spec.ts index ec905446..805e4a93 100644 --- a/e2e/tests/testOdooIntegration.spec.ts +++ b/e2e/tests/testOdooIntegration.spec.ts @@ -1,6 +1,7 @@ import { test, expect } from '@playwright/test'; import { HomePage } from '../utils/functions/testBase'; import { patientName } from '../utils/functions/testBase'; +import { E2E_BASE_URL, E2E_ODOO_URL } from '../utils/configs/globalSetup'; let homePage: HomePage; @@ -56,30 +57,12 @@ test('Editing patient details with a synced lab order edits the corresponding cu await expect(quotation?.includes("Quotation")).toBeTruthy(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.updatePatientDetails(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ODOO_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ODOO_URL_QA}`); - break; - default: - await page.goto(`${process.env.E2E_ODOO_URL_DEV}`); - } + await page.goto(`${E2E_ODOO_URL}`); await homePage.searchCustomerInOdoo(); const updatedCustomer = await page.locator("table tbody tr:nth-child(1) td.o_data_cell.o_field_cell.o_list_many2one.o_readonly_modifier.o_required_modifier"); @@ -125,30 +108,12 @@ test('Editing patient details with a synced drug order edits corresponding custo await expect(quotation?.includes("Quotation")).toBeTruthy(); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.updatePatientDetails(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ODOO_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ODOO_URL_QA}`); - break; - default: - await page.goto(`${process.env.E2E_ODOO_URL_DEV}`); - } + await page.goto(`${E2E_ODOO_URL}`); await homePage.searchCustomerInOdoo(); const updatedCustomer = await page.locator("table tbody tr:nth-child(1) td.o_data_cell.o_field_cell.o_list_many2one.o_readonly_modifier.o_required_modifier"); @@ -175,30 +140,12 @@ test('Revising a synced drug order edits corresponding quotation line in Odoo', await expect(drugOrderItem).toContainText('Twice daily - 5 Days'); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.editDrugOrder(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ODOO_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ODOO_URL_QA}`); - break; - default: - await page.goto(`${process.env.E2E_ODOO_URL_DEV}`); - } + await page.goto(`${E2E_ODOO_URL}`); await homePage.searchCustomerInOdoo(); await page.getByRole('cell', { name: `${patientName.firstName + ' ' + patientName.givenName}` }).click(); await expect(drugOrderItem).toContainText('8.0 Tablet'); @@ -224,30 +171,12 @@ test('Discontinuing a synced drug order cancels corresponding quotation line in await expect(drugOrderItem).toHaveText('Aspirin 325mg'); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.discontinueDrugOrder(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_ODOO_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_ODOO_URL_QA}`); - break; - default: - await page.goto(`${process.env.E2E_ODOO_URL_DEV}`); - } + await page.goto(`${E2E_ODOO_URL}`); await homePage.searchCustomerInOdoo(); await expect(customer?.includes(`${patientName.firstName + ' ' + patientName.givenName}`)).toBeTruthy(); await expect(quotation).toHaveText('Cancelled'); diff --git a/e2e/tests/testSenaiteIntegration.spec.ts b/e2e/tests/testSenaiteIntegration.spec.ts index 471a0728..0e9253d6 100644 --- a/e2e/tests/testSenaiteIntegration.spec.ts +++ b/e2e/tests/testSenaiteIntegration.spec.ts @@ -1,6 +1,7 @@ import { test, expect } from '@playwright/test'; import { HomePage } from '../utils/functions/testBase'; import { patientName } from '../utils/functions/testBase'; +import { E2E_BASE_URL, E2E_SENAITE_URL } from '../utils/configs/globalSetup'; let homePage: HomePage; @@ -46,16 +47,7 @@ test('Editing patient details with a synced lab test order edits client details await expect(client).toContainText(`${patientName.firstName + ' ' + patientName.givenName}`); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.updatePatientDetails(); @@ -86,16 +78,7 @@ test('Editing a synced lab order edits corresponding analysis request in SENAITE await expect(analysisRequest).toHaveText('Blood urea nitrogen Template'); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.updateLabOrder(); @@ -129,16 +112,7 @@ test('Voiding a synced lab order cancels corresponding analysis request in SENAI await expect(analysisRequest).toHaveText('Blood urea nitrogen Template'); // replay - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.searchPatient(`${patientName.firstName + ' ' + patientName.givenName}`); await homePage.discontinueLabOrder(); @@ -167,16 +141,7 @@ test('Published coded lab results from SENAITE are viewable in O3', async ({ pag await expect(reviewState?.includes('Published')).toBeTruthy(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.viewTestResults(); const testName = await page.locator('div:nth-child(2) >div> div.cds--data-table-container td:nth-child(1)').first(); await expect(testName).toContainText('Hepatitis C test - qualitative'); @@ -204,16 +169,7 @@ test('Published numeric lab results from SENAITE are viewable in O3', async ({ p await expect(reviewState?.includes('Published')).toBeTruthy(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.viewTestResults(); const testName = await page.locator('div:nth-child(2) >div> div.cds--data-table-container td:nth-child(1)').first(); await expect(testName).toContainText('Total bilirubin'); @@ -241,16 +197,7 @@ test('Published free text lab results from SENAITE are viewable in O3', async ({ await expect(reviewState?.includes('Published')).toBeTruthy(); // verify - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await page.goto(`${E2E_BASE_URL}`); await homePage.viewTestResults(); const testName = await page.locator('div:nth-child(2) >div> div.cds--data-table-container td:nth-child(1)').first(); await expect(testName).toHaveText('Stool microscopy with concentration'); diff --git a/e2e/utils/configs/globalSetup.ts b/e2e/utils/configs/globalSetup.ts index 7cde914d..f0fc091f 100644 --- a/e2e/utils/configs/globalSetup.ts +++ b/e2e/utils/configs/globalSetup.ts @@ -11,6 +11,12 @@ import { dotenv.config(); +export const E2E_BASE_URL = `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo' ? `${process.env.E2E_BASE_URL_DEMO}` : `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa' ? `${process.env.E2E_BASE_URL_QA}`: `${process.env.E2E_BASE_URL_DEV}`; +export const E2E_ODOO_URL = `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo' ? `${process.env.E2E_ODOO_URL_DEMO}` : `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa' ? `${process.env.E2E_ODOO_URL_QA}`: `${process.env.E2E_ODOO_URL_DEV}`; +export const E2E_SENAITE_URL = `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo' ? `${process.env.E2E_SENAITE_URL_DEMO}` : `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa' ? `${process.env.E2E_SENAITE_URL_QA}`: `${process.env.E2E_SENAITE_URL_DEV}`; +export const E2E_KEYCLOAK_URL = `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo' ? `${process.env.E2E_KEYCLOAK_URL_DEMO}` : `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa' ? `${process.env.E2E_KEYCLOAK_URL_QA}`: `${process.env.E2E_KEYCLOAK_URL_DEV}`; +export const E2E_ANALYTICS_URL = `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo' ? `${process.env.E2E_ANALYTICS_URL_DEMO}` : `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa' ? `${process.env.E2E_ANALYTICS_URL_QA}`: `${process.env.E2E_ANALYTICS_URL_DEV}`; + async function globalSetup() { const requestContext = await request.newContext(); const token = Buffer.from(`${process.env.E2E_USER_ADMIN_USERNAME}:${process.env.E2E_USER_ADMIN_PASSWORD}`).toString( diff --git a/e2e/utils/functions/testBase.ts b/e2e/utils/functions/testBase.ts index 3f17c39c..6bfca02d 100644 --- a/e2e/utils/functions/testBase.ts +++ b/e2e/utils/functions/testBase.ts @@ -1,4 +1,12 @@ import { Page, expect } from '@playwright/test'; +import { + E2E_BASE_URL, + E2E_ODOO_URL, + E2E_SENAITE_URL, + E2E_KEYCLOAK_URL, + E2E_ANALYTICS_URL +} + from '../configs/globalSetup'; export var patientName = { firstName : '', @@ -27,16 +35,7 @@ export class HomePage { readonly patientSearchBar = () => this.page.locator('[data-testid="patientSearchBar"]'); async initiateLogin() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_BASE_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_BASE_URL_QA}`); - break; - default: - await this.page.goto(`${process.env.E2E_BASE_URL_DEV}`); - } + await this.page.goto(`${E2E_BASE_URL}`); if (`${process.env.E2E_RUNNING_ON_OZONE_PRO}` == 'true') { await this.page.locator('#username').fill(`${process.env.E2E_USER_ADMIN_USERNAME}`); await this.page.getByRole('button', { name: 'Continue' }).click(); @@ -63,29 +62,11 @@ export class HomePage { } async goToSuperset() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_ANALYTICS_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_ANALYTICS_URL_QA}`); - break; - default: - await this.page.goto(`${process.env.E2E_ANALYTICS_URL_DEV}`); - } + await this.page.goto(`${E2E_ANALYTICS_URL}`); } async goToKeycloak() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_KEYCLOAK_URL_DEMO}/admin/master/console`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_KEYCLOAK_URL_QA}/admin/master/console`); - break; - default: - await this.page.goto(`${process.env.E2E_KEYCLOAK_URL_DEV}/admin/master/console`); - } + await this.page.goto(`${E2E_KEYCLOAK_URL}/admin/master/console`); await this.page.getByLabel('Username or email').fill('admin'); await this.page.getByLabel('Password').fill('password'); await this.page.getByRole('button', { name: 'Sign In' }).click(); @@ -93,16 +74,7 @@ export class HomePage { } async goToOdoo() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_ODOO_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_ODOO_URL_QA}`); - break; - default: - await this.page.goto(`${process.env.E2E_ODOO_URL_DEV}`); - } + await this.page.goto(`${E2E_ODOO_URL}`); if (`${process.env.E2E_RUNNING_ON_OZONE_PRO}` == 'true') { await this.page.getByRole('link', { name: 'Login with Single Sign-On' }).click(); } else { @@ -116,16 +88,7 @@ export class HomePage { } async goToSENAITE() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_SENAITE_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_SENAITE_URL_QA}`); - break; - default: - await this.page.goto(`${process.env.E2E_SENAITE_URL_DEV}`); - } + await this.page.goto(`${E2E_SENAITE_URL}`); if (!(`${process.env.E2E_RUNNING_ON_OZONE_PRO}` == 'true')) { await delay(3000); await this.page.locator('#__ac_name').fill(`${process.env.FOSS_E2E_USER_ADMIN_USERNAME}`); @@ -171,7 +134,7 @@ export class HomePage { if (await this.page.getByTitle('close notification').isVisible()) { await this.page.getByTitle('close notification').click(); } - await this.page.getByRole('button', { name: 'Close' }).click(); + await this.page.getByRole('button', { name: 'Close', exact: true }).click(); await delay(3000); } @@ -212,16 +175,7 @@ export class HomePage { } async deletePatient() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/admin/patients/index.htm`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/admin/patients/index.htm`); - break; - default: - await this.page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/admin/patients/index.htm`); - } + await this.page.goto(`${E2E_BASE_URL}/openmrs/admin/patients/index.htm`); await this.page.getByPlaceholder(' ').type(`${patientName.firstName + ' ' + patientName.givenName}`); await this.page.locator('#openmrsSearchTable tbody tr.odd td:nth-child(1)').click(); await this.page.locator('input[name="voidReason"]').fill('Delete patient created by smoke tests'); @@ -453,7 +407,7 @@ export class HomePage { await this.page.getByRole('button', { name: 'Update Patient' }).click(); await expect(this.page.getByText('Patient Details Updated')).toBeVisible(); patientName.firstName = `${patientName.updatedFirstName}`; - await this.page.getByRole('button', { name: 'Close' }).click(); + await this.page.getByRole('button', { name: 'Close', exact: true }).click(); await delay(5000); } @@ -513,16 +467,7 @@ export class HomePage { } async deleteOpenMRSRole() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/admin/users/role.list`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/admin/users/role.list`); - break; - default: - await this.page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/admin/users/role.list`); - } + await this.page.goto(`${E2E_BASE_URL}/openmrs/admin/users/role.list`); await this.unlinkInheritedOpenMRSRoles(); await this.page.getByRole('row', { name: `${randomOpenMRSRoleName.roleName}` }).getByRole('checkbox').check(); await this.page.getByRole('button', { name: 'Delete Selected Roles' }).click(); @@ -532,16 +477,7 @@ export class HomePage { } async makeDelayFor03ToLoad() { - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_SENAITE_URL_DEMO}`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_SENAITE_URL_QA}`); - break; - default: - await this.page.goto(`${process.env.E2E_SENAITE_URL_DEV}`); - } + await this.page.goto(`${E2E_SENAITE_URL}`); if (!(`${process.env.E2E_RUNNING_ON_OZONE_PRO}` == 'true')) { await delay(3000); await this.page.locator('#__ac_name').fill(`${process.env.FOSS_E2E_USER_ADMIN_USERNAME}`); @@ -551,16 +487,7 @@ export class HomePage { await this.page.locator('#buttons-login').click(); } await delay(4000); - switch (true) { - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'demo': - await this.page.goto(`${process.env.E2E_BASE_URL_DEMO}/openmrs/spa/home`); - break; - case `${process.env.E2E_TEST_ENVIRONMENT}` == 'qa': - await this.page.goto(`${process.env.E2E_BASE_URL_QA}/openmrs/spa/home`); - break; - default: - await this.page.goto(`${process.env.E2E_BASE_URL_DEV}/openmrs/spa/home`); - } + await this.page.goto(`${E2E_BASE_URL}`); } async expectAllButtonsToBePresent() { diff --git a/playwright.config.ts b/playwright.config.ts index eca322c8..2ad0d1d7 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -23,7 +23,9 @@ const config: PlaywrightTestConfig = { name: 'chromium', use: { ...devices['Desktop Chromium'], - viewport: {width: 1920, height: 1080} + viewport: {width: 1920, height: 1080}, + video: 'on', + screenshot: 'only-on-failure' }, },