+
{% endif %}
{% block content_column_content %}{% endblock %}
diff --git a/backstop_data/bitmaps_reference/backstop_test_About_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_About_0_document_0_desktop.png
new file mode 100644
index 000000000..6f2fbc850
Binary files /dev/null and b/backstop_data/bitmaps_reference/backstop_test_About_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Contact_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Contact_0_document_0_desktop.png
new file mode 100644
index 000000000..87e6ffd48
Binary files /dev/null and b/backstop_data/bitmaps_reference/backstop_test_Contact_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Establish_Trust_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Establish_Trust_0_document_0_desktop.png
index 25db02ceb..fb31fc2e8 100644
Binary files a/backstop_data/bitmaps_reference/backstop_test_Establish_Trust_0_document_0_desktop.png and b/backstop_data/bitmaps_reference/backstop_test_Establish_Trust_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Guidance_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Guidance_0_document_0_desktop.png
index c65fcc0c9..d7a515b0e 100644
Binary files a/backstop_data/bitmaps_reference/backstop_test_Guidance_0_document_0_desktop.png and b/backstop_data/bitmaps_reference/backstop_test_Guidance_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Homepage_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Homepage_0_document_0_desktop.png
index fd75611bb..686ce6fc5 100644
Binary files a/backstop_data/bitmaps_reference/backstop_test_Homepage_0_document_0_desktop.png and b/backstop_data/bitmaps_reference/backstop_test_Homepage_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Join_Notify_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Join_Notify_0_document_0_desktop.png
new file mode 100644
index 000000000..360c49126
Binary files /dev/null and b/backstop_data/bitmaps_reference/backstop_test_Join_Notify_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Pricing_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Pricing_0_document_0_desktop.png
index 30ad020ee..9b158bc0c 100644
Binary files a/backstop_data/bitmaps_reference/backstop_test_Pricing_0_document_0_desktop.png and b/backstop_data/bitmaps_reference/backstop_test_Pricing_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Security_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Security_0_document_0_desktop.png
index 65382a710..6af3e40cf 100644
Binary files a/backstop_data/bitmaps_reference/backstop_test_Security_0_document_0_desktop.png and b/backstop_data/bitmaps_reference/backstop_test_Security_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Trial_Mode_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Trial_Mode_0_document_0_desktop.png
index b457a1d4d..6e8d9e068 100644
Binary files a/backstop_data/bitmaps_reference/backstop_test_Trial_Mode_0_document_0_desktop.png and b/backstop_data/bitmaps_reference/backstop_test_Trial_Mode_0_document_0_desktop.png differ
diff --git a/backstop_data/bitmaps_reference/backstop_test_Why_Text_Messaging_0_document_0_desktop.png b/backstop_data/bitmaps_reference/backstop_test_Why_Text_Messaging_0_document_0_desktop.png
new file mode 100644
index 000000000..eb0e26295
Binary files /dev/null and b/backstop_data/bitmaps_reference/backstop_test_Why_Text_Messaging_0_document_0_desktop.png differ
diff --git a/tests/app/main/views/test_index.py b/tests/app/main/views/test_index.py
index 8c6c7b7a7..9f5bf51e4 100644
--- a/tests/app/main/views/test_index.py
+++ b/tests/app/main/views/test_index.py
@@ -108,52 +108,33 @@ def test_hiding_pages_from_search_engines(
def test_static_pages(client_request, mock_get_organization_by_domain, view, mocker):
mocker.patch("app.notify_client.user_api_client.UserApiClient.deactivate_user")
- # Function to check if a view is feature-flagged and should return 404 when disabled
- def is_feature_flagged(view):
- feature_flagged_views = [
- "clear_goals",
- "rules_and_regulations",
- "establish_trust",
- "write_for_action",
- "multiple_languages",
- "benchmark_performance",
- "guidance_index",
- ]
- return (
- view in feature_flagged_views
- )
-
request = partial(client_request.get, "main.{}".format(view))
- # If the guidance feature is disabled, expect a 404 for feature-flagged views
- if is_feature_flagged(view):
- page = request(_expected_status=404)
- else:
- # Check the page loads when user is signed in
- page = request()
- assert page.select_one("meta[name=description]")
+ # Assert the page loads successfully
+ page = request(_expected_status=200)
+ assert page.select_one("meta[name=description]")
- # Check it still works when they don’t have a recent service
- with client_request.session_transaction() as session:
- session["service_id"] = None
- request()
+ # Check the behavior when no recent service is set
+ with client_request.session_transaction() as session:
+ session["service_id"] = None
+ request()
- # Check it redirects to the login screen when they sign out
- client_request.logout()
- with client_request.session_transaction() as session:
- session["service_id"] = None
- session["user_id"] = None
- request(
- _expected_status=302,
- _expected_redirect="/sign-in?next={}".format(
- url_for("main.{}".format(view))
- ),
- )
+ # Check redirection to login screen when signed out
+ client_request.logout()
+ with client_request.session_transaction() as session:
+ session["service_id"] = None
+ session["user_id"] = None
+ request(
+ _expected_status=302,
+ _expected_redirect="/sign-in?next={}".format(
+ url_for("main.{}".format(view))
+ ),
+ )
def test_guidance_pages_link_to_service_pages_when_signed_in(client_request, mocker):
-
mocker.patch("app.notify_client.user_api_client.UserApiClient.deactivate_user")
+
request = partial(client_request.get, "main.edit_and_format_messages")
selector = ".list-number li a"
@@ -175,8 +156,7 @@ def test_guidance_pages_link_to_service_pages_when_signed_in(client_request, moc
with client_request.session_transaction() as session:
session["service_id"] = None
session["user_id"] = None
- page = request(_expected_status=302)
- assert not page.select_one(selector)
+ request(_expected_status=302)
@pytest.mark.parametrize(
diff --git a/tests/end_to_end/test_best_practices_content_pages.py b/tests/end_to_end/test_best_practices_content_pages.py
index 9f805962e..ac5294dd7 100644
--- a/tests/end_to_end/test_best_practices_content_pages.py
+++ b/tests/end_to_end/test_best_practices_content_pages.py
@@ -11,15 +11,14 @@ E2E_TEST_URI = os.getenv("NOTIFY_E2E_TEST_URI")
def test_best_practices_side_menu(authenticated_page):
page = authenticated_page
- page.goto(f"{E2E_TEST_URI}")
-
- page.wait_for_load_state("domcontentloaded")
+ page.goto(f"{E2E_TEST_URI}guides/best-practices")
+ page.wait_for_load_state("networkidle")
check_axe_report(page)
- # Test Best Practices navigation
- page.get_by_role("link", name="Best Practices").click()
- expect(page).to_have_title(re.compile("Best Practice"))
+ # Test navigation for "Best Practices" and its sub-links
+ expect(page.get_by_role("link", name="Best Practices")).to_be_visible(timeout=10000)
+ # Test the individual sublinks under Best Practices
page.get_by_role("link", name="Clear goals", exact=True).click()
expect(page).to_have_title(re.compile("Establish clear goals"))
@@ -30,35 +29,25 @@ def test_best_practices_side_menu(authenticated_page):
expect(page).to_have_title(re.compile("Establish trust"))
page.get_by_role("link", name="Write for action").click()
- expect(page).to_have_title(re.compile("Write texts that provoke"))
+ expect(page).to_have_title(re.compile("Write for action"))
page.get_by_role("link", name="Multiple languages").click()
- expect(page).to_have_title(re.compile("Text in multiple languages"))
+ expect(page).to_have_title(re.compile("Multiple languages"))
page.get_by_role("link", name="Benchmark performance").click()
- expect(page).to_have_title(re.compile("Measuring performance with"))
-
- parent_link = page.get_by_role("link", name="Establish trust")
- parent_link.hover()
-
- submenu_item = page.get_by_role("link", name=re.compile("Get the word out"))
- submenu_item.click()
-
- expect(page).to_have_url(re.compile(r"#get-the-word-out"))
-
- anchor_target = page.locator("#get-the-word-out")
- expect(anchor_target).to_be_visible()
- anchor_target.click()
+ expect(page).to_have_title(re.compile("Benchmark performance"))
def test_breadcrumbs_best_practices(authenticated_page):
page = authenticated_page
- page.goto(f"{E2E_TEST_URI}")
-
- page.wait_for_load_state("domcontentloaded")
+ page.goto(f"{E2E_TEST_URI}/guides/best-practices")
+ page.wait_for_load_state("networkidle")
check_axe_report(page)
- # Test Best Practices breadcrumbs
+ # Test breadcrumb navigation from a subpage
page.get_by_role("link", name="Clear goals", exact=True).click()
- page.locator("ol").get_by_role("link", name="Best Practices").click()
+ breadcrumb_link = page.locator("ol").get_by_role("link", name="Best Practices")
+ expect(breadcrumb_link).to_be_visible(timeout=10000)
+ breadcrumb_link.click()
+ expect(page).to_have_title(re.compile("Best Practices"))