Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from playwright.sync_api import Page
from pages.base_page import BasePage
from datetime import datetime

class HandoverIntoSymptomaticCarePage(BasePage):
"""
HandoverIntoSymptomaticCarePage class for interacting with the 'Handover Into Symptomatic Care' page elements.
"""
def __init__(self, page: Page):
self.page = page
self.referral_dropdown = self.page.get_by_label("Referral")
self.calendar_button = self.page.get_by_role("button", name="Calendar")
self.consultant_link = self.page.locator("#UI_NS_CONSULTANT_PIO_SELECT_LINK")
self.notes_textbox = self.page.get_by_role("textbox", name="Notes")
self.save_button = self.page.get_by_role("button", name="Save")

def select_referral_dropdown_option(self, value: str) -> None:
"""Select a given option from the Referral dropdown."""
self.referral_dropdown.select_option(value)

def click_calendar_button(self) -> None:
"""Click the calendar button to open the calendar picker."""
self.click(self.calendar_button)

def select_consultant(self, value: str) -> None:
"""Select a consultant from the dropdown."""
self.consultant_link.click()
option_locator = self.page.locator(f'[value="{value}"]:visible')
option_locator.wait_for(state="visible")
self.click(option_locator)

def fill_notes(self, notes: str) -> None:
"""Fill the notes textbox with the given text."""
self.notes_textbox.click()
self.notes_textbox.fill(notes)

def click_save_button(self) -> None:
"""Click the save button to save the changes."""
self.safe_accept_dialog(self.save_button)
22 changes: 10 additions & 12 deletions tests/smokescreen/test_compartment_6.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@
from playwright.sync_api import Page, expect
from pages.base_page import BasePage
from utils.user_tools import UserTools
from utils.calendar_picker import CalendarPicker
from datetime import datetime
from utils.screening_subject_page_searcher import verify_subject_event_status_by_nhs_no
from pages.screening_subject_search.subject_screening_summary_page import (
SubjectScreeningSummaryPage,
)
from utils.batch_processing import batch_processing
from pages.logout.log_out_page import LogoutPage
from pages.datasets.subject_datasets_page import SubjectDatasetsPage
from pages.screening_subject_search.handover_into_symptomatic_care_page import (
HandoverIntoSymptomaticCarePage
)
from utils.calendar_picker import CalendarPicker
from datetime import datetime
from pages.screening_subject_search.record_diagnosis_date_page import (
Expand Down Expand Up @@ -243,19 +248,12 @@ def handover_subject_to_symptomatic_care(page: Page) -> None:
page.get_by_role("button", name="Handover into Symptomatic Care").click()

# The following code is on the handover into symptomatic care page
page.get_by_label("Referral").select_option("20445")
page.get_by_role("button", name="Calendar").click()
HandoverIntoSymptomaticCarePage(page).select_referral_dropdown_option("20445")
HandoverIntoSymptomaticCarePage(page).click_calendar_button()
CalendarPicker(page).v1_calender_picker(datetime.today())
page.locator("#UI_NS_CONSULTANT_PIO_SELECT_LINK").click()
option_locator = page.locator(
'[value="201"]:visible'
) # Here value '201' is referring to Consultant B, Frame
option_locator.wait_for(state="visible")
option_locator.click()
page.get_by_role("textbox", name="Notes").click()
page.get_by_role("textbox", name="Notes").fill("Test Automation")
page.once("dialog", lambda dialog: dialog.accept())
page.get_by_role("button", name="Save").click()
HandoverIntoSymptomaticCarePage(page).select_consultant("201")
HandoverIntoSymptomaticCarePage(page).fill_notes("Test Automation")
HandoverIntoSymptomaticCarePage(page).click_save_button()

SubjectScreeningSummaryPage(page).wait_for_page_title()
SubjectScreeningSummaryPage(page).verify_latest_event_status_value(
Expand Down