Skip to content

Commit 6bdf6f0

Browse files
Merge branch 'main' into feature/BCSS-20351-poc-test-runner-part-3
2 parents 7199de5 + abef415 commit 6bdf6f0

File tree

8 files changed

+265
-40
lines changed

8 files changed

+265
-40
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from playwright.sync_api import Page, expect
2+
from pages.base_page import BasePage
3+
4+
5+
class AppointmentCalendar(BasePage):
6+
def __init__(self, page: Page):
7+
super().__init__(page)
8+
self.page = page
9+
# Appointment Calendar - page filters
10+
self.appointment_type_drowdown = self.page.locator("#UI_APPOINTMENT_TYPE")
11+
self.screening_centre_dropdown = self.page.locator("#UI_SCREENING_CENTRE")
12+
self.site_dropdown = self.page.locator("#UI_SITE")
13+
self.view_appointments_on_this_day_button = self.page.get_by_role(
14+
"button", name="View appointments on this day"
15+
)
16+
17+
def select_appointment_type_dropdown(self, type: str) -> None:
18+
self.appointment_type_drowdown.select_option(label=type)
19+
20+
def select_screening_centre_dropdown(self, screening_centre: str) -> None:
21+
self.screening_centre_dropdown.select_option(label=screening_centre)
22+
23+
def select_site_dropdown(self, site: str) -> None:
24+
self.site_dropdown.select_option(label=site)
25+
26+
def click_view_appointments_on_this_day_button(self) -> None:
27+
self.click(self.view_appointments_on_this_day_button)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from playwright.sync_api import Page, expect
2+
from pages.base_page import BasePage
3+
4+
5+
class AppointmentDetail(BasePage):
6+
def __init__(self, page: Page):
7+
super().__init__(page)
8+
self.page = page
9+
# Appointment Detail - page filters
10+
self.attendance_radio = self.page.get_by_role("radio", name="Attendance")
11+
self.attendented_check_box = self.page.locator("#UI_ATTENDED")
12+
self.calendar_button = self.page.get_by_role("button", name="Calendar")
13+
self.save_button = self.page.get_by_role("button", name="Save").click()
14+
15+
def check_attendance_radio(self) -> None:
16+
self.attendance_radio.check()
17+
18+
def check_attendented_check_box(self) -> None:
19+
self.attendented_check_box.check()
20+
21+
def click_calendar_button(self) -> None:
22+
self.click(self.calendar_button)
23+
24+
def click_save_button(self) -> None:
25+
self.click(self.save_button)
26+
27+
def verify_text_visible(self, text: str) -> None:
28+
expect(self.page.get_by_text(text)).to_be_visible()
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from playwright.sync_api import Page
2+
from pages.base_page import BasePage
3+
4+
class ScreeningPractitionerDayView(BasePage):
5+
def __init__(self, page: Page):
6+
super().__init__(page)
7+
self.page = page
8+
# Screening Practitioner Day View - page locators
9+
self.calendar_button = page.get_by_role("button", name="Calendar")
10+
11+
def click_calendar_button(self) -> None:
12+
self.click(self.calendar_button)
13+
14+
def click_patient_link(self, patient_name: str) -> None:
15+
self.click(self.page.get_by_role("link", name=patient_name))
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
from playwright.sync_api import Page, expect
2+
from pages.base_page import BasePage
3+
from enum import Enum
4+
5+
6+
class SubjectDatasets(BasePage):
7+
def __init__(self, page: Page):
8+
super().__init__(page)
9+
self.page = page
10+
11+
self.show_dataset_button = self.page.get_by_role("link", name="Show Dataset")
12+
13+
self.save_dataset_button = self.page.locator(
14+
"#UI_DIV_BUTTON_SAVE1"
15+
).get_by_role("button", name="Save Dataset")
16+
17+
self.select_asa_grade_dropdown = self.page.get_by_label("ASA Grade")
18+
19+
self.select_fit_for_colonoscopy_dropdown = self.page.get_by_label(
20+
"Fit for Colonoscopy (SSP)"
21+
)
22+
23+
self.dataset_complete_radio_button_yes = self.page.get_by_role(
24+
"radio", name="Yes"
25+
)
26+
27+
self.dataset_complete_radio_button_no = self.page.get_by_role(
28+
"radio", name="No"
29+
)
30+
31+
def click_show_datasets(self) -> None:
32+
self.click(self.show_dataset_button)
33+
34+
def save_dataset(self) -> None:
35+
self.click(self.save_dataset_button)
36+
37+
def select_asa_grade_option(self, option: str) -> None:
38+
self.select_asa_grade_dropdowen.select_option(option)
39+
40+
def select_fit_for_colonoscopy_option(self, option: str) -> None:
41+
self.select_fit_for_colonoscopy_dropdown.select_option(option)
42+
43+
def click_dataset_complete_radio_button_yes(self) -> None:
44+
self.dataset_complete_radio_button_yes.check()
45+
46+
def click_dataset_complete_radio_button_no(self) -> None:
47+
self.dataset_complete_radio_button_no.check()
48+
49+
50+
class AsaGradeOptions(Enum):
51+
FIT = "17009"
52+
53+
54+
class FitForColonoscopySspOptions(Enum):
55+
YES = "17058"
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from playwright.sync_api import Page, expect, Locator
2+
from pages.base_page import BasePage
3+
4+
5+
class AdvanceFOBTScreeningEpisode(BasePage):
6+
def __init__(self, page: Page):
7+
super().__init__(page)
8+
self.page = page
9+
# Advance FOBT Screening Episode - page locators
10+
self.suitable_for_endoscopic_test_button = self.page.get_by_role(
11+
"button", name="Suitable for Endoscopic Test"
12+
)
13+
self.calendar_button = self.page.get_by_role("button", name="Calendar")
14+
self.test_type_dropdown = self.page.locator("#UI_EXT_TEST_TYPE_2233")
15+
self.invite_for_diagnostic_test_button = self.page.get_by_role(
16+
"button", name="Invite for Diagnostic Test >>"
17+
)
18+
self.attend_diagnostic_test_button = self.page.get_by_role(
19+
"button", name="Attend Diagnostic Test"
20+
)
21+
self.other_post_investigation_button = self.page.get_by_role(
22+
"button", name="Other Post-investigation"
23+
)
24+
self.record_other_post_investigation_contact_button = self.page.get_by_role(
25+
"button", name="Record other post-"
26+
)
27+
28+
def click_suitable_for_endoscopic_test_button(self) -> None:
29+
AdvanceFOBTScreeningEpisode(self.page).safe_accept_dialog(
30+
self.suitable_for_endoscopic_test_button
31+
)
32+
33+
def click_calendar_button(self) -> None:
34+
self.click(self.calendar_button)
35+
36+
def select_test_type_dropdown_option(self, text: str) -> None:
37+
self.test_type_dropdown.select_option(label=text)
38+
39+
def click_invite_for_diagnostic_test_button(self) -> None:
40+
AdvanceFOBTScreeningEpisode(self.page).safe_accept_dialog(
41+
self.invite_for_diagnostic_test_button
42+
)
43+
44+
def click_attend_diagnostic_test_button(self) -> None:
45+
self.click(self.attend_diagnostic_test_button)
46+
47+
def click_other_post_investigation_button(self) -> None:
48+
AdvanceFOBTScreeningEpisode(self.page).safe_accept_dialog(
49+
self.other_post_investigation_button
50+
)
51+
52+
def get_latest_event_status_cell(self, latest_event_status: str) -> Locator:
53+
return self.page.get_by_role("cell", name=latest_event_status, exact=True)
54+
55+
def verify_latest_event_status_value(self, latest_event_status: str) -> None:
56+
latest_event_status_cell = self.get_latest_event_status_cell(
57+
latest_event_status
58+
)
59+
expect(latest_event_status_cell).to_be_visible()
60+
61+
def click_record_other_post_investigation_contact_button(self) -> None:
62+
self.click(self.record_other_post_investigation_contact_button)

pages/screening_subject_search/subject_screening_summary.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ def __init__(self, page: Page):
4848
self.first_fobt_episode_link = page.get_by_role(
4949
"link", name="FOBT Screening"
5050
).first
51+
self.datasets_link = self.page.get_by_role("link", name="Datasets")
52+
self.advance_fobt_screening_episode_button = self.page.get_by_role(
53+
"button", name="Advance FOBT Screening Episode"
54+
)
5155

5256
def verify_result_contains_text(self, text) -> None:
5357
expect(self.display_rs).to_contain_text(text)
@@ -122,6 +126,12 @@ def expand_episodes_list(self) -> None:
122126
def click_first_fobt_episode_link(self) -> None:
123127
self.click(self.first_fobt_episode_link)
124128

129+
def click_datasets_link(self) -> None:
130+
self.click(self.datasets_link)
131+
132+
def click_advance_fobt_screening_episode_button(self) -> None:
133+
self.click(self.advance_fobt_screening_episode_button)
134+
125135

126136
class ChangeScreeningStatusOptions(Enum):
127137
SEEKING_FURTHER_DATA = "4007"

tests/smokescreen/bcss_smokescreen_tests.properties

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
c4_eng_site_name2=The Royal Hospital (Wolverhampton)
3333
c4_eng_practitioner_name=Astonish, Ethanol
3434

35+
# ----------------------------------
36+
# compartment 5
37+
# ----------------------------------
38+
c5_eng_appointment_type=Colonoscopy Assessment
39+
c5_eng_screening_centre=BCS001 - Wolverhampton Bowel Cancer Screening Centre
40+
c5_eng_site=(all)
41+
3542
# ----------------------------------
3643
# compartment 6
3744
# ----------------------------------
@@ -78,7 +85,7 @@
7885
# ----------------------------------
7986
# compartment 5
8087
# ----------------------------------
81-
# c5_eng_number_of_screening_appts_to_attend=6
88+
# c5_eng_number_of_screening_appts_to_attend=5
8289

8390
# ----------------------------------
8491
# compartment 6

0 commit comments

Comments
 (0)