97 lines
3.0 KiB
TypeScript
97 lines
3.0 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { RoleAuthHelper } from '../../helpers/helpers';
|
|
|
|
test.describe('PX Admin Role', () => {
|
|
test.describe.configure({ mode: 'parallel' });
|
|
|
|
test('login succeeds and redirects to hospital select', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
expect(page.url()).toContain('select-hospital');
|
|
});
|
|
|
|
test('hospital select page shows hospital cards', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
await page.waitForSelector('.hospital-card, .bg-amber-50', { timeout: 10000 });
|
|
const hasHospitals = await page.locator('.hospital-card').count().then(c => c > 0);
|
|
expect(hasHospitals).toBeTruthy();
|
|
});
|
|
|
|
test('can access config dashboard', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/config/');
|
|
expect(response?.status()).toBeLessThan(400);
|
|
});
|
|
|
|
test('can access SLA config', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/config/sla/');
|
|
expect(response?.status()).toBeLessThan(400);
|
|
});
|
|
|
|
|
|
test('can access complaints list', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/complaints/');
|
|
expect(response?.status()).toBeLessThan(400);
|
|
});
|
|
|
|
test('can access surveys page', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/surveys/templates/');
|
|
expect(response?.status()).toBeLessThan(400);
|
|
});
|
|
|
|
test('can access observations page', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/observations/');
|
|
expect(response?.status()).toBeLessThan(400);
|
|
});
|
|
|
|
test('can access organizations page', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
await page.goto('/organizations/');
|
|
await page.waitForLoadState('domcontentloaded');
|
|
expect(page.url()).not.toContain('login');
|
|
});
|
|
|
|
test('can access API docs', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/api/docs/');
|
|
expect(response?.status()).toBe(200);
|
|
});
|
|
|
|
test('can access AI engine', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/ai-engine/');
|
|
expect(response?.status()).toBeLessThan(400);
|
|
});
|
|
|
|
test('can access physician ratings', async ({ page }) => {
|
|
const auth = new RoleAuthHelper(page);
|
|
await auth.login('px_admin');
|
|
|
|
const response = await page.goto('/physicians/');
|
|
expect(response?.status()).toBeLessThan(400);
|
|
});
|
|
});
|