Skip to content

Commit 7e20541

Browse files
Chore: [AEA-4513] - Set up header (#190)
## Summary - Routine Change ### Details added tests for the header and menu links
1 parent 3c61af8 commit 7e20541

File tree

4 files changed

+79
-8
lines changed

4 files changed

+79
-8
lines changed

features/cpts_ui/home_page.feature

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ Feature: I can visit the Clinical Prescription Tracker Service Website
88

99
@allure.tms:https://nhsd-jira.digital.nhs.uk/browse/AEA-4515
1010
Scenario: user can see the footer
11-
When I go to the homepage
12-
Then I am on the homepage
13-
And I can see the footer
11+
Given I am on the homepage
12+
Then I can see the footer
13+
14+
@allure.tms:https://nhsd-jira.digital.nhs.uk/browse/AEA-4513
15+
Scenario: user can see the header
16+
Given I am on the homepage
17+
Then I can see the header
18+
And I can see the links on the header
19+
20+
@allure.tms:https://nhsd-jira.digital.nhs.uk/browse/AEA-4513
21+
Scenario: user sees a menu with links when the screen size is small
22+
Given I am on the homepage
23+
When I have a screen size of 900 pixels wide
24+
Then I can see the header links in a dropdown menu

features/environment.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,7 @@ def before_all(context):
118118
if product == "CPTS-UI":
119119
global _page
120120
playwright = sync_playwright().start()
121-
browser = playwright.chromium.launch(
122-
headless=True, slow_mo=1000, channel="chrome"
123-
)
121+
browser = playwright.chromium.launch(headless=True, channel="chrome")
124122
context.page = browser.new_page()
125123
_page = context.page
126124
set_page(context, _page)
Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# pylint: disable=no-name-in-module
2-
from behave import when, then # pyright: ignore [reportAttributeAccessIssue]
2+
from behave import given, when, then # pyright: ignore [reportAttributeAccessIssue]
33
from pages.home_page import HomePage
44

55

@@ -8,8 +8,15 @@ def goto_page(context):
88
context.page.goto(context.cpts_ui_base_url + "site/")
99

1010

11-
@then("I am on the homepage")
11+
@given("I am on the homepage")
1212
def verify_on_page(context):
13+
goto_page(context)
14+
home_page = HomePage(context.page)
15+
home_page.verify_header_link()
16+
17+
18+
@then("I am on the homepage")
19+
def verify_on_home_page(context):
1320
home_page = HomePage(context.page)
1421
home_page.verify_header_link()
1522

@@ -18,3 +25,26 @@ def verify_on_page(context):
1825
def i_can_see_the_footer(context):
1926
home_page = HomePage(context.page)
2027
home_page.verify_footer_is_visible()
28+
29+
30+
@then("I can see the header")
31+
def i_can_see_the_header(context):
32+
home_page = HomePage(context.page)
33+
home_page.verify_header_is_visible()
34+
35+
36+
@then("I can see the links on the header")
37+
def i_can_see_the_links_on_the_header(context):
38+
home_page = HomePage(context.page)
39+
home_page.verify_header_links_large_view()
40+
41+
42+
@when("I have a screen size of {pixel_width} pixels wide")
43+
def i_have_a_screen_size_of_x_pixels_wide(context, pixel_width):
44+
context.page.set_viewport_size({"width": int(pixel_width), "height": 1200})
45+
46+
47+
@then("I can see the header links in a dropdown menu")
48+
def i_can_see_the_header_links_in_a_dropdown_menu(context):
49+
home_page = HomePage(context.page)
50+
home_page.verify_header_links_900_pixels_wide_view()

pages/home_page.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,44 @@ class HomePage:
55

66
def __init__(self, page: Page):
77
self.page = page
8+
self.header = "NHS LogoClinical prescription"
89
self.footer = "[id='eps_footer']"
10+
self.eps_header_placeholder1 = "eps_header_placeholder1"
11+
self.eps_header_placeholder2 = "eps_header_placeholder2"
12+
self.eps_header_placeholder3 = "eps_header_placeholder3"
13+
self.eps_header_confirmRoleLink = "eps_header_confirmRoleLink"
14+
self.menu_button = "Browse Menu"
915

1016
def verify_header_link(self):
1117
expect(
1218
self.page.get_by_role("link", name="Clinical prescription")
1319
).to_be_visible()
1420

21+
def verify_header_is_visible(self):
22+
expect(self.page.get_by_text(self.header)).to_be_visible()
23+
1524
def verify_footer_is_visible(self):
1625
self.page.is_visible(self.footer)
26+
27+
def verify_header_links_large_view(self):
28+
expect(self.page.get_by_test_id(self.eps_header_placeholder1)).to_be_visible()
29+
expect(self.page.get_by_test_id(self.eps_header_placeholder2)).to_be_visible()
30+
expect(self.page.get_by_test_id(self.eps_header_placeholder3)).to_be_visible()
31+
expect(
32+
self.page.get_by_test_id(self.eps_header_confirmRoleLink)
33+
).to_be_visible()
34+
35+
def verify_header_links_900_pixels_wide_view(self):
36+
expect(self.page.get_by_role("button", name=self.menu_button)).to_be_visible()
37+
self.page.get_by_role("button", name=self.menu_button).click()
38+
expect(
39+
self.page.get_by_test_id(self.eps_header_confirmRoleLink)
40+
).to_be_visible()
41+
expect(self.page.get_by_test_id(self.eps_header_placeholder3)).to_be_visible()
42+
self.page.get_by_role("button", name=self.menu_button).click()
43+
expect(self.page.get_by_test_id(self.eps_header_confirmRoleLink)).to_be_visible(
44+
visible=False
45+
)
46+
expect(self.page.get_by_test_id(self.eps_header_placeholder3)).to_be_visible(
47+
visible=False
48+
)

0 commit comments

Comments
 (0)