"""Example E2E test using playwright. This module demonstrates how to use playwright for testing the blog application. """ from playwright.sync_api import sync_playwright class TestBlogE2E: """End-to-end tests for the blog application.""" def test_homepage_loads(self, base_url: str) -> None: """Test that homepage loads successfully.""" with sync_playwright() as p: browser = p.firefox.launch(headless=True) page = browser.new_page() page.goto(f"{base_url}/web/") page.wait_for_load_state("networkidle") # Check logo is visible logo = page.locator('[data-testid="nav-logo"]') assert logo.is_visible(), "Logo should be visible" browser.close() class TestBlogAPI: """API tests for the blog application.""" def test_get_posts(self, base_url: str) -> None: """Test GET /api/v1/posts endpoint.""" import httpx response = httpx.get(f"{base_url}/api/v1/posts") assert response.status_code == 200 data = response.json() assert isinstance(data, list)