Files
notifications-admin/tests/app/main/views/test_history.py

112 lines
3.8 KiB
Python
Raw Normal View History

import pytest
from freezegun import freeze_time
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
@pytest.mark.parametrize(
("extra_args", "expected_headings_and_events"),
[
(
{},
[
(
2023-11-16 12:24:27 -08:00
"12 December 2012",
(
2023-11-16 12:24:27 -08:00
"Test User 13:13 "
"Renamed this service from Before lunch to After lunch "
2023-11-16 12:24:27 -08:00
"Test User 12:12 "
"Renamed this service from Example service to Before lunch"
),
),
(
2023-11-16 12:24:27 -08:00
"11 November 2012",
("Test User 12:12 " "Revoked the Bad key API key"),
),
(
2023-11-16 12:24:27 -08:00
"11 November",
("Test User 11:11 " "Created an API key called Bad key"),
),
(
"10 October 2010",
(
2023-11-16 12:24:27 -08:00
"Test User 11:10 "
"Created an API key called Good key "
2023-11-16 12:24:27 -08:00
"Test User 10:09 "
"Created an API key called Key event returned in non-chronological order "
2023-11-16 12:24:27 -08:00
"Test User 02:01 "
"Created this service and called it Example service"
),
),
],
),
(
{"selected": "api"},
[
(
2023-11-16 12:24:27 -08:00
"11 November 2012",
("Test User 12:12 " "Revoked the Bad key API key"),
),
(
2023-11-16 12:24:27 -08:00
"11 November",
("Test User 11:11 " "Created an API key called Bad key"),
),
(
"10 October 2010",
(
2023-11-16 12:24:27 -08:00
"Test User 11:10 "
"Created an API key called Good key "
2023-11-16 12:24:27 -08:00
"Test User 10:09 "
"Created an API key called Key event returned in non-chronological order"
),
),
],
),
(
{"selected": "service"},
[
(
2023-11-16 12:24:27 -08:00
"12 December 2012",
(
2023-11-16 12:24:27 -08:00
"Test User 13:13 "
"Renamed this service from Before lunch to After lunch "
2023-11-16 12:24:27 -08:00
"Test User 12:12 "
"Renamed this service from Example service to Before lunch"
),
),
(
"10 October 2010",
(
2023-11-16 12:24:27 -08:00
"Test User 02:01 "
"Created this service and called it Example service"
),
),
],
),
],
)
@freeze_time("2012-01-01 01:01:01")
def test_history(
client_request,
mock_get_service_history,
mock_get_users_by_service,
extra_args,
expected_headings_and_events,
):
page = client_request.get("main.history", service_id=SERVICE_ONE_ID, **extra_args)
assert page.select_one("h1").text == "Audit events"
Removed all govuk css (#2814) * Removed all govuk css * Updated reference files * Removing govuk js * Fixed casing for modules, removed unused page * Got more reference images * Updated template page * Removed govuk padding util * Updated hint to uswds hint * More govuk cleanup * Commiting backstopjs ref files * Fixed all unit tests that broke due to brittleness around govuk styling * Added new ref images * Final removal of govuk * Officially removed all govuk references * Updated reference file * Updated link to button * UI modernization * Cleanup * removed govuk escaping tests since they are no longer needed * Fix CodeQL security issue in escapeElementName function - Escape backslashes first before other special characters - Prevents potential double-escaping vulnerability - Addresses CodeQL alert about improper string escaping * Found more govuk removal. Fixed unit tests * Add missing pipeline check to pre-commit * updated test * Updated e2e test * More update to e2e test * Fixed another e2e test * Simple PR comments addressed * More updates * Updated backstop ref files * Refactored folder selection for non-admins * Updated redundant line * Updated tests to include correct mocks * Added more ref files * Addressing carlos comments * Addressing Carlo comments, cleanup of window initing * More cleanup and addressing carlo comments * Fixing a11 scan * Fixed a few issues with javascript * Fixed for pr * Fixing e2e tests * Tweaking e2e test * Added more ref files and cleaned up urls.js * Fixed bug with creating new template * Removed brittle test - addressed code ql comment * e2e race condition fix * More e2e test fixes * Updated e2e tests to not wait for text sent * Updated test to not wait for button click response * Made tear down more resilent if staging is down * reverted e2e test to what was working before main merge * Updated backstopRef images * Updated gulp to include job-polling differently
2025-10-06 09:38:54 -04:00
# Check for content directly
page_text = normalize_spaces(page.text)
Removed all govuk css (#2814) * Removed all govuk css * Updated reference files * Removing govuk js * Fixed casing for modules, removed unused page * Got more reference images * Updated template page * Removed govuk padding util * Updated hint to uswds hint * More govuk cleanup * Commiting backstopjs ref files * Fixed all unit tests that broke due to brittleness around govuk styling * Added new ref images * Final removal of govuk * Officially removed all govuk references * Updated reference file * Updated link to button * UI modernization * Cleanup * removed govuk escaping tests since they are no longer needed * Fix CodeQL security issue in escapeElementName function - Escape backslashes first before other special characters - Prevents potential double-escaping vulnerability - Addresses CodeQL alert about improper string escaping * Found more govuk removal. Fixed unit tests * Add missing pipeline check to pre-commit * updated test * Updated e2e test * More update to e2e test * Fixed another e2e test * Simple PR comments addressed * More updates * Updated backstop ref files * Refactored folder selection for non-admins * Updated redundant line * Updated tests to include correct mocks * Added more ref files * Addressing carlos comments * Addressing Carlo comments, cleanup of window initing * More cleanup and addressing carlo comments * Fixing a11 scan * Fixed a few issues with javascript * Fixed for pr * Fixing e2e tests * Tweaking e2e test * Added more ref files and cleaned up urls.js * Fixed bug with creating new template * Removed brittle test - addressed code ql comment * e2e race condition fix * More e2e test fixes * Updated e2e tests to not wait for text sent * Updated test to not wait for button click response * Made tear down more resilent if staging is down * reverted e2e test to what was working before main merge * Updated backstopRef images * Updated gulp to include job-polling differently
2025-10-06 09:38:54 -04:00
for expected_heading, expected_events in expected_headings_and_events:
# Check heading exists in page
assert expected_heading in page_text
Removed all govuk css (#2814) * Removed all govuk css * Updated reference files * Removing govuk js * Fixed casing for modules, removed unused page * Got more reference images * Updated template page * Removed govuk padding util * Updated hint to uswds hint * More govuk cleanup * Commiting backstopjs ref files * Fixed all unit tests that broke due to brittleness around govuk styling * Added new ref images * Final removal of govuk * Officially removed all govuk references * Updated reference file * Updated link to button * UI modernization * Cleanup * removed govuk escaping tests since they are no longer needed * Fix CodeQL security issue in escapeElementName function - Escape backslashes first before other special characters - Prevents potential double-escaping vulnerability - Addresses CodeQL alert about improper string escaping * Found more govuk removal. Fixed unit tests * Add missing pipeline check to pre-commit * updated test * Updated e2e test * More update to e2e test * Fixed another e2e test * Simple PR comments addressed * More updates * Updated backstop ref files * Refactored folder selection for non-admins * Updated redundant line * Updated tests to include correct mocks * Added more ref files * Addressing carlos comments * Addressing Carlo comments, cleanup of window initing * More cleanup and addressing carlo comments * Fixing a11 scan * Fixed a few issues with javascript * Fixed for pr * Fixing e2e tests * Tweaking e2e test * Added more ref files and cleaned up urls.js * Fixed bug with creating new template * Removed brittle test - addressed code ql comment * e2e race condition fix * More e2e test fixes * Updated e2e tests to not wait for text sent * Updated test to not wait for button click response * Made tear down more resilent if staging is down * reverted e2e test to what was working before main merge * Updated backstopRef images * Updated gulp to include job-polling differently
2025-10-06 09:38:54 -04:00
# The application renders with curly quotes, and our test data has curly quotes
for event in expected_events.split("Test User"):
if event.strip():
# Just check the main content without the "Test User" prefix
assert event.strip() in page_text