Skip to content

Commit 4caba62

Browse files
https://nhsd-jira.digital.nhs.uk/browse/BCSS-20365 - BCSS - Playwright - Compartment 5- POM for 'Contact with Patient' page
1 parent e3ab573 commit 4caba62

File tree

2 files changed

+83
-13
lines changed

2 files changed

+83
-13
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from playwright.sync_api import Page, expect
2+
from pages.base_page import BasePage
3+
4+
5+
class PractitionerAvailabilityPage(BasePage):
6+
def __init__(self, page: Page):
7+
super().__init__(page)
8+
self.page = page
9+
# Practitioner Availability - page locators
10+
self.site_id_dropdown = page.locator("#UI_SITE_ID")
11+
self.screening_practitioner_dropdown = page.locator("#UI_PRACTITIONER_ID")
12+
self.calendar_button = page.get_by_role("button", name="Calendar")
13+
self.show_button = page.get_by_role("button", name="Show")
14+
self.time_from_text_field = page.get_by_role("textbox", name="From:")
15+
self.time_to_text_field = page.get_by_role("textbox", name="To:")
16+
self.calculate_slots_button = page.get_by_role("button", name="Calculate Slots")
17+
self.number_of_weeks_text_field = page.locator("#FOR_WEEKS")
18+
self.save_button = page.get_by_role("button", name="Save")
19+
20+
def select_site_dropdown_option(self, site_to_use: str) -> None:
21+
self.site_id_dropdown.select_option(label=site_to_use)
22+
23+
def select_practitioner_dropdown_option(self, practitioner: str) -> None:
24+
self.screening_practitioner_dropdown.select_option(label=practitioner)
25+
26+
def click_calendar_button(self) -> None:
27+
self.click(self.calendar_button)
28+
29+
def click_show_button(self) -> None:
30+
self.click(self.show_button)
31+
32+
def enter_start_time(self, start_time: str) -> None:
33+
self.time_from_text_field.fill(start_time)
34+
35+
def enter_end_time(self, end_time: str) -> None:
36+
self.time_to_text_field.fill(end_time)
37+
38+
def click_calculate_slots_button(self) -> None:
39+
self.click(self.calculate_slots_button)
40+
41+
def enter_number_of_weeks(self, weeks: str) -> None:
42+
self.number_of_weeks_text_field.fill(weeks)
43+
44+
def click_save_button(self) -> None:
45+
self.click(self.save_button)
46+
47+
def slots_updated_message_is_displayed(self, message: str) -> None:
48+
expect(self.page.get_by_text(message)).to_be_visible()

tests/smokescreen/test_compartment_5.py

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
from pages.screening_subject_search.subject_screening_summary import (
99
SubjectScreeningSummary,
1010
)
11+
12+
from pages.screening_subject_search.contact_with_patient_page import (
13+
ContactWithPatientPage,
14+
)
15+
1116
from utils.user_tools import UserTools
1217
from utils.load_properties_file import PropertiesFile
1318
from utils.screening_subject_page_searcher import verify_subject_event_status_by_nhs_no
@@ -159,20 +164,37 @@ def test_compartment_5(page: Page, smokescreen_properties: dict) -> None:
159164
# 'End Time', 12:00
160165
# 'Discussion Record' TEST AUTOMATION
161166
# select 'Outcome' - 'Post-investigation Appointment Not Required' and click 'Save'
162-
page.locator("#UI_DIRECTION").select_option(label="To patient")
163-
page.locator("#UI_CALLER_ID").select_option(index=0)
164-
page.get_by_role("button", name="Calendar").click()
165-
CalendarPicker(page).v1_calender_picker(datetime.today())
166-
page.locator("#UI_START_TIME").click()
167-
page.locator("#UI_START_TIME").fill("11:00")
168-
page.locator("#UI_END_TIME").click()
169-
page.locator("#UI_END_TIME").fill("12:00")
170-
page.locator("#UI_COMMENT_ID").click()
171-
page.locator("#UI_COMMENT_ID").fill("Test Automation")
172-
page.locator("#UI_OUTCOME").select_option(
173-
label="Post-investigation Appointment Not Required"
167+
168+
ContactWithPatientPage(page).select_direction_dropdown_option(
169+
smokescreen_properties["c5_eng_direction1","c5_eng_direction2"]
174170
)
175-
page.get_by_role("button", name="Save").click()
171+
ContactWithPatientPage(page).select_callerid_dropdown_option(
172+
smokescreen_properties["c5_eng_callerid"]
173+
)
174+
ContactWithPatientPage(page).click_calendar_button()
175+
CalendarPicker(page).select_day(datetime.today())
176+
ContactWithPatientPage(page).enter_start_time("11:00")
177+
ContactWithPatientPage(page).enter_end_time("12:00")
178+
ContactWithPatientPage(page).enter_discussion_record_text("Test Automation")
179+
ContactWithPatientPage(page).select_outcome_dropdown_option(
180+
smokescreen_properties["c5_eng_outcome1","c5_eng_outcome2"]
181+
)
182+
ContactWithPatientPage(page).click_save_button()
183+
184+
#page.locator("#UI_DIRECTION").select_option(label="To patient")
185+
#page.locator("#UI_CALLER_ID").select_option(index=0)
186+
#page.get_by_role("button", name="Calendar").click()
187+
#CalendarPicker(page).v1_calender_picker(datetime.today())
188+
#page.locator("#UI_START_TIME").click()
189+
#page.locator("#UI_START_TIME").fill("11:00")
190+
#page.locator("#UI_END_TIME").click()
191+
#page.locator("#UI_END_TIME").fill("12:00")
192+
#page.locator("#UI_COMMENT_ID").click()
193+
#page.locator("#UI_COMMENT_ID").fill("Test Automation")
194+
#page.locator("#UI_OUTCOME").select_option(
195+
#label="Post-investigation Appointment Not Required"
196+
#)
197+
#page.get_by_role("button", name="Save").click()
176198

177199
verify_subject_event_status_by_nhs_no(
178200
page, nhs_no, "A361 - Other Post-investigation Contact Required"

0 commit comments

Comments
 (0)