Skip to content

Commit 5c7758a

Browse files
authored
Merge pull request #845 from NHSDigital/make-tallying-test-more-rubst
Make tallying test more robust
2 parents 56a2624 + 73c4ec3 commit 5c7758a

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

mavis/test/pages/add_session_wizard_page.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,5 +127,6 @@ def schedule_clinic_session(
127127

128128
@step("Keep session dates if necessary")
129129
def keep_session_dates_if_necessary(self) -> None:
130+
self.page.wait_for_load_state()
130131
if self.keep_session_dates_button.is_visible():
131132
self.click_keep_session_dates()

mavis/test/pages/sessions/sessions_overview_page.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,25 @@ def __init__(self, page: Page) -> None:
5555
"button", name="Send manual consent reminders"
5656
)
5757

58-
def get_total_for_category(self, category: str) -> int:
59-
category_locator = self.page.locator(
58+
def get_total_for_category(self, programme: Programme, category: str) -> int:
59+
programme_section = self.page.locator(f'section:has(h3:text("{programme}"))')
60+
61+
category_locator = programme_section.locator(
6062
".nhsuk-card__heading.nhsuk-heading-xs", has_text=category
6163
)
6264
total_locator = category_locator.locator("xpath=following-sibling::*[1]")
6365
return int(total_locator.inner_text())
6466

6567
def get_all_totals(self, programme: Programme) -> dict[str, int]:
6668
return {
67-
category: self.get_total_for_category(category)
69+
category: self.get_total_for_category(programme, category)
6870
for category in programme.tally_categories
6971
}
7072

71-
def check_all_totals(self, totals: dict[str, int]) -> None:
73+
def check_all_totals(self, programme: Programme, totals: dict[str, int]) -> None:
7274
self.tabs.click_overview_tab()
7375
for category, expected_total in totals.items():
74-
actual_total = self.get_total_for_category(category)
76+
actual_total = self.get_total_for_category(programme, category)
7577
assert actual_total == expected_total, (
7678
f"Expected {expected_total} for {category}, but got {actual_total}"
7779
)

tests/test_tallying.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def test_tallying( # noqa: PLR0915
101101

102102
tally_totals[TallyCategory.NEEDS_CONSENT] -= 1
103103
tally_totals[TallyCategory.DUE_INJECTION] += 1
104-
SessionsOverviewPage(page).check_all_totals(tally_totals)
104+
SessionsOverviewPage(page).check_all_totals(Programme.FLU, tally_totals)
105105

106106
SessionsOverviewPage(page).tabs.click_children_tab()
107107
SessionsChildrenPage(page).search.search_and_click_child(child)
@@ -117,7 +117,7 @@ def test_tallying( # noqa: PLR0915
117117

118118
tally_totals[TallyCategory.DUE_INJECTION] -= 1
119119
tally_totals[TallyCategory.HAS_A_REFUSAL] += 1
120-
SessionsOverviewPage(page).check_all_totals(tally_totals)
120+
SessionsOverviewPage(page).check_all_totals(Programme.FLU, tally_totals)
121121

122122
SessionsOverviewPage(page).tabs.click_children_tab()
123123
SessionsChildrenPage(page).search.search_and_click_child(child)
@@ -126,7 +126,7 @@ def test_tallying( # noqa: PLR0915
126126

127127
tally_totals[TallyCategory.HAS_A_REFUSAL] -= 1
128128
tally_totals[TallyCategory.NEEDS_CONSENT] += 1
129-
SessionsOverviewPage(page).check_all_totals(tally_totals)
129+
SessionsOverviewPage(page).check_all_totals(Programme.FLU, tally_totals)
130130

131131
SessionsOverviewPage(page).tabs.click_children_tab()
132132
SessionsChildrenPage(page).search.search_and_click_child(child)
@@ -142,7 +142,7 @@ def test_tallying( # noqa: PLR0915
142142

143143
tally_totals[TallyCategory.NEEDS_CONSENT] -= 1
144144
tally_totals[TallyCategory.DUE_NASAL_SPRAY] += 1
145-
SessionsOverviewPage(page).check_all_totals(tally_totals)
145+
SessionsOverviewPage(page).check_all_totals(Programme.FLU, tally_totals)
146146

147147
SessionsOverviewPage(page).tabs.click_children_tab()
148148
SessionsChildrenPage(page).register_child_as_attending(child)
@@ -158,7 +158,7 @@ def test_tallying( # noqa: PLR0915
158158

159159
tally_totals[TallyCategory.DUE_NASAL_SPRAY] -= 1
160160
tally_totals[TallyCategory.VACCINATED] += 1
161-
SessionsOverviewPage(page).check_all_totals(tally_totals)
161+
SessionsOverviewPage(page).check_all_totals(Programme.FLU, tally_totals)
162162

163163

164164
@issue("MAV-2689")

0 commit comments

Comments
 (0)