Files
thrillwiki_django_no_react/backend/tests/e2e/test_parks.py
pacnpal edcd8f2076 Add secret management guide, client-side performance monitoring, and search accessibility enhancements
- Introduced a comprehensive Secret Management Guide detailing best practices, secret classification, development setup, production management, rotation procedures, and emergency protocols.
- Implemented a client-side performance monitoring script to track various metrics including page load performance, paint metrics, layout shifts, and memory usage.
- Enhanced search accessibility with keyboard navigation support for search results, ensuring compliance with WCAG standards and improving user experience.
2025-12-23 16:41:42 -05:00

131 lines
4.4 KiB
Python

from playwright.sync_api import expect, Page
def test_parks_list_page(page: Page):
# Navigate to parks page
page.goto("http://localhost:8000/parks/")
# Check parks list elements
expect(page.get_by_role("heading", name="Theme Parks")).to_be_visible()
expect(page.get_by_role("searchbox", name="Search parks")).to_be_visible()
# Check filter options
expect(page.get_by_role("combobox", name="Country")).to_be_visible()
expect(page.get_by_role("combobox", name="State/Region")).to_be_visible()
def test_park_search(page: Page):
# Navigate to parks page
page.goto("http://localhost:8000/parks/")
# Search for a park
search_box = page.get_by_role("searchbox", name="Search parks")
search_box.fill("Universal")
search_box.press("Enter")
# Verify search results
expect(page.get_by_text("Universal Studios")).to_be_visible()
expect(page.get_by_text("Universal's Islands of Adventure")).to_be_visible()
def test_park_filters(page: Page):
# Navigate to parks page
page.goto("http://localhost:8000/parks/")
# Select country filter
page.get_by_role("combobox", name="Country").select_option("United States")
# Select state filter
page.get_by_role("combobox", name="State/Region").select_option("Florida")
# Verify filtered results
expect(page.get_by_text("Walt Disney World")).to_be_visible()
expect(page.get_by_text("Universal Orlando Resort")).to_be_visible()
def test_park_detail_page(page: Page):
# Navigate to a specific park page
page.goto("http://localhost:8000/parks/walt-disney-world/")
# Check park details
expect(page.get_by_role("heading", name="Walt Disney World")).to_be_visible()
expect(page.get_by_text("Location:")).to_be_visible()
expect(page.get_by_text("Orlando, Florida")).to_be_visible()
# Check park sections
expect(page.get_by_role("tab", name="Overview")).to_be_visible()
expect(page.get_by_role("tab", name="Rides")).to_be_visible()
expect(page.get_by_role("tab", name="Reviews")).to_be_visible()
expect(page.get_by_role("tab", name="Photos")).to_be_visible()
def test_add_park_review(page: Page):
# First login
page.goto("http://localhost:8000/accounts/login/")
page.get_by_label("Username").fill("testuser")
page.get_by_label("Password").fill("testpass123")
page.get_by_role("button", name="Sign In").click()
# Navigate to park page
page.goto("http://localhost:8000/parks/walt-disney-world/")
# Click on Reviews tab
page.get_by_role("tab", name="Reviews").click()
# Click Write Review button
page.get_by_role("button", name="Write Review").click()
# Fill review form
page.get_by_label("Rating").select_option("5")
page.get_by_label("Title").fill("Amazing Experience")
page.get_by_label("Review").fill("Had a fantastic time at the park!")
# Submit review
page.get_by_role("button", name="Submit Review").click()
# Verify review appears
expect(page.get_by_text("Amazing Experience")).to_be_visible()
expect(page.get_by_text("Had a fantastic time at the park!")).to_be_visible()
def test_add_park_photo(page: Page, test_images):
# First login
page.goto("http://localhost:8000/accounts/login/")
page.get_by_label("Username").fill("testuser")
page.get_by_label("Password").fill("testpass123")
page.get_by_role("button", name="Sign In").click()
# Navigate to park page
page.goto("http://localhost:8000/parks/walt-disney-world/")
# Click on Photos tab
page.get_by_role("tab", name="Photos").click()
# Click Add Photo button
page.get_by_role("button", name="Add Photo").click()
# Upload photo
page.get_by_label("Photo").set_input_files(test_images["test_photo"])
page.get_by_label("Caption").fill("Beautiful castle at sunset")
# Submit photo
page.get_by_role("button", name="Upload Photo").click()
# Verify photo appears
expect(page.get_by_text("Beautiful castle at sunset")).to_be_visible()
def test_park_map(page: Page):
# Navigate to park page
page.goto("http://localhost:8000/parks/walt-disney-world/")
# Check map exists
expect(page.locator("#park-map")).to_be_visible()
# Check map controls
expect(page.get_by_role("button", name="Zoom in")).to_be_visible()
expect(page.get_by_role("button", name="Zoom out")).to_be_visible()
# Verify map markers
expect(page.locator(".map-marker")).to_have_count.greater_than(0)