Skip to content

Commit

Permalink
E2E test for diagnosis workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
kdaud committed Aug 21, 2024
1 parent 2927dad commit 2412858
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 2 deletions.
70 changes: 70 additions & 0 deletions e2e/tests/diagnosis.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import { test, expect } from '@playwright/test';
import { Odoo } from '../utils/functions/odoo';
import { Bahmni } from '../utils/functions/bahmni';

let bahmni: Bahmni;
let odoo: Odoo;

test.beforeEach(async ({ page }) => {
bahmni = new Bahmni(page);
odoo = new Odoo(page);

await bahmni.login();
await expect(page.getByText(/registration/i)).toBeVisible();
await expect(page.getByText(/linical/i)).toBeVisible();
await expect(page.getByText(/admin/i)).toBeVisible();
await expect(page.getByText(/appointment scheduling/i)).toBeVisible();
await expect(page.getByText(/patient documents/i)).toBeVisible();
});

test('Create, revise and discontinue diagnosis.', async ({ page }) => {
// setup
await bahmni.registerPatient();

// replay
await bahmni.goToDiagnosis();
await page.locator('#name-0').fill('Candidiasis (B37.9)');
await page.getByText('Candidiasis (B37.9)').click();
await page.locator('#order-0').getByRole('button', { name: /primary/i }).click();
await page.locator('#certainty-0').getByRole('button', { name: /confirmed/i }).click();

await page.locator('#name-1').fill('Diphtheria (A36.9)');
await page.getByText('Diphtheria (A36.9)').click();
await page.locator('#order-1').getByRole('button', { name: /secondary/i }).click();
await page.locator('#certainty-1').getByRole('button', { name: /presumed/i }).click();
await bahmni.saveOrder();

// verify creation
await page.locator('#dashboard-link span.patient-name').click();
const primaryDiagnosisSelector = await page.locator('#diagnosisName').nth(0);
const secondaryDiagnosisSelector = await page.locator('#diagnosisName').nth(1);
const primaryDiagnosisCertaintySelector = await page.locator('#certainty').nth(0);
const seconadryDiagnosisCertaintySelector = await page.locator('#certainty').nth(1);

await expect(primaryDiagnosisSelector).toContainText('Candidiasis');
await expect(secondaryDiagnosisSelector).toContainText('Diphtheria');
await expect(primaryDiagnosisCertaintySelector).toContainText(/confirmed/i);
await expect(seconadryDiagnosisCertaintySelector).toContainText(/presumed/i);

// verify revision
await page.locator('#view-content :nth-child(1).btn--success').click();
await page.locator('#opd-tabs').getByText('Diagnosis').click();
await page.locator('i.fa.fa-edit').first().click();
await page.getByRole('button', { name: /confirmed/i }).click();
await page.getByRole('button', { name: /presumed/i }).nth(1).click();
await bahmni.saveOrder();
await page.locator('i.fa.fa-edit').nth(1).click();
await page.getByRole('button', { name: /presumed/i }).click();
await page.getByRole('button', { name: /confirmed/i }).nth(1).click();
await bahmni.saveOrder();
await page.locator('#dashboard-link span.patient-name').click();
await expect(primaryDiagnosisCertaintySelector).toContainText(/presumed/i);
await expect(seconadryDiagnosisCertaintySelector).toContainText(/confirmed/i);

// verify revision
});

test.afterEach(async ({ page }) => {
await bahmni.voidPatient();
await page.close();
});
8 changes: 8 additions & 0 deletions e2e/utils/functions/bahmni.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,14 @@ export class Bahmni {
await expect(this.page.getByText('Lab Samples')).toBeVisible();
}

async goToDiagnosis() {
await this.page.locator('i.fa.fa-home').click();
await this.page.getByRole('link', { name: 'Clinical' }).click();
await this.searchPatient();
await this.page.locator('#view-content :nth-child(1).btn--success').click();
await this.page.locator('#opd-tabs').getByText('Diagnosis').click();
}

async goToMedications() {
await this.page.locator('i.fa.fa-home').click();
await this.page.getByRole('link', { name: 'Clinical' }).click();
Expand Down
6 changes: 4 additions & 2 deletions playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ const config: PlaywrightTestConfig = {
use: {
...devices['Desktop Chromium'],
launchOptions: {
slowMo: 500
}
slowMo: 500,
},
screenshot: 'only-on-failure',
video: 'retain-on-failure'
},

},
Expand Down

0 comments on commit 2412858

Please sign in to comment.