|
| 1 | +import pytest |
| 2 | +from playwright.sync_api import Page |
| 3 | +from utils.user_tools import UserTools |
| 4 | +from pages.base_page import BasePage |
| 5 | +from pages.subject.subject_lynch_page import SubjectPage |
| 6 | + |
| 7 | + |
| 8 | +@pytest.mark.regression |
| 9 | +@pytest.mark.lynch_self_referral |
| 10 | +def test_lynch_self_referral_seeking_further_data_flow(page: Page) -> None: |
| 11 | + """ |
| 12 | + Scenario: [BCSS-20606] Move Lynch self-referred subject to seeking Further Data (uncertified death), then back |
| 13 | + """ |
| 14 | + # Step 1: Log in as Hub Manager (England) |
| 15 | + UserTools.user_login(page, "Hub Manager State Registered at BCS01") |
| 16 | + BasePage(page).go_to_subjects_page() |
| 17 | + |
| 18 | + # Step 2: Receive Lynch diagnosis for a new subject |
| 19 | + subject_page = SubjectPage( |
| 20 | + page, |
| 21 | + hub_manager_role=SubjectPage.hub_manager_role, |
| 22 | + lynch_diagnosis_type=SubjectPage.lynch_diagnosis_type, |
| 23 | + |
| 24 | + subject_age=SubjectPage.subject_age, |
| 25 | + diagnosis_date=SubjectPage.diagnosis_date, |
| 26 | + last_colonoscopy_date=SubjectPage.last_colonoscopy_date, |
| 27 | + default_pause_seconds=SubjectPage.default_pause_seconds, |
| 28 | + screening_status_lynch_self_referral=SubjectPage.screening_status_lynch_self_referral, |
| 29 | + expected_self_referral_updates=SubjectPage.expected_self_referral_updates, |
| 30 | + expected_seeking_further_data_updates=SubjectPage.expected_seeking_further_data_updates, |
| 31 | + expected_reset_seeking_further_data_updates=SubjectPage.expected_reset_seeking_further_data_updates |
| 32 | +) |
| 33 | + subject_page.receive_lynch_diagnosis( |
| 34 | + diagnosis_type=SubjectPage.lynch_diagnosis_type, |
| 35 | + age=SubjectPage.subject_age, |
| 36 | + diagnosis_date=SubjectPage.diagnosis_date, |
| 37 | + last_colonoscopy_date=SubjectPage.last_colonoscopy_date |
| 38 | + ) |
| 39 | + subject_page.pause_for_processing(SubjectPage.default_pause_seconds) |
| 40 | + |
| 41 | + # Step 3: Self refer the subject |
| 42 | + subject_page.self_refer_subject() |
| 43 | + subject_page.confirm_prompt() |
| 44 | + subject_page.pause_for_processing(SubjectPage.default_pause_seconds) |
| 45 | + |
| 46 | + # Step 4: Assert subject updated after self-referral |
| 47 | + subject_page.assert_subject_updates(SubjectPage.expected_self_referral_updates) |
| 48 | + |
| 49 | + # Step 5: Set subject to Seeking Further Data |
| 50 | + subject_page.set_seeking_further_data() |
| 51 | + subject_page.assert_subject_updates(SubjectPage.expected_seeking_further_data_updates) |
| 52 | + |
| 53 | + # Step 6: Set subject back to Lynch Self-referral |
| 54 | + subject_page.set_screening_status(SubjectPage.screening_status_lynch_self_referral) |
| 55 | + subject_page.assert_subject_updates(SubjectPage.expected_reset_seeking_further_data_updates) |
0 commit comments