76 lines
2.8 KiB
Python
76 lines
2.8 KiB
Python
import pytest
|
|
from playwright.sync_api import Page, expect
|
|
import time
|
|
|
|
BASE_URL = "https://curaflow.applaude.net"
|
|
|
|
def test_login_flow(page: Page):
|
|
"""Test the login page loads and allows entry"""
|
|
page.goto(f"{BASE_URL}/login.html")
|
|
|
|
# Check that we are on the login page
|
|
expect(page.locator("h2")).to_contain_text("Welcome")
|
|
|
|
# Login as Doctor
|
|
page.locator("#clinicId").fill("doctor@sharma.clinic")
|
|
page.locator("#password").fill("doc123")
|
|
page.locator("button[type='submit']").click()
|
|
|
|
# Should navigate to doctor dashboard
|
|
page.wait_for_url(f"{BASE_URL}/dashboard.html")
|
|
expect(page.locator("body")).to_contain_text("Overview")
|
|
|
|
def test_doctor_queue_and_visit(page: Page):
|
|
"""Test that a doctor can view the queue in Zen mode and start a visit"""
|
|
# Setup: Login
|
|
page.goto(f"{BASE_URL}/login.html")
|
|
page.locator("#clinicId").fill("doctor@sharma.clinic")
|
|
page.locator("#password").fill("doc123")
|
|
page.locator("button[type='submit']").click()
|
|
page.wait_for_url(f"{BASE_URL}/dashboard.html")
|
|
|
|
# In Zen mode, the Up Next queue should be visible immediately
|
|
expect(page.locator("h3:has-text('Up Next')")).to_be_visible()
|
|
|
|
# Click on Anjali Singh in the pipeline
|
|
page.locator(".pipeline-item:has-text('Anjali Singh')").click()
|
|
|
|
# The header should update to show Anjali Singh
|
|
expect(page.locator("body")).to_contain_text("Anjali Singh")
|
|
|
|
# The consultation notes area should be visible
|
|
expect(page.locator("#consultationNotes")).to_be_visible()
|
|
|
|
def test_lab_technician_flow(page: Page):
|
|
"""Test the Lab Tech flow for submitting results"""
|
|
page.goto(f"{BASE_URL}/login.html")
|
|
page.locator("#clinicId").fill("doctor@sharma.clinic")
|
|
page.locator("#password").fill("doc123")
|
|
page.locator("button[type='submit']").click()
|
|
|
|
# Need to wait for login logic to redirect
|
|
page.wait_for_url(f"{BASE_URL}/dashboard.html")
|
|
|
|
# Manually navigate to lab
|
|
page.goto(f"{BASE_URL}/lab.html")
|
|
expect(page.locator("body")).to_contain_text("Lab")
|
|
|
|
# Verify the structure has a pending tests table
|
|
expect(page.locator("h2:has-text('Live Test Queue')")).to_be_visible()
|
|
|
|
def test_pharmacy_technician_flow(page: Page):
|
|
"""Test the Pharmacy flow"""
|
|
page.goto(f"{BASE_URL}/login.html")
|
|
page.locator("#clinicId").fill("doctor@sharma.clinic")
|
|
page.locator("#password").fill("doc123")
|
|
page.locator("button[type='submit']").click()
|
|
|
|
page.wait_for_url(f"{BASE_URL}/dashboard.html")
|
|
|
|
# Manually navigate to pharmacy
|
|
page.goto(f"{BASE_URL}/pharmacy.html")
|
|
expect(page.locator("body")).to_contain_text("Pharmacy")
|
|
|
|
# Should have a fulfill prescriptions list
|
|
expect(page.locator("h2:has-text('Pending Prescriptions')")).to_be_visible()
|