Files
WrestleDesk/scripts/test_login_flow.py
T
Andrej Spielmann 3fefc550fe Initial commit: WrestleDesk full project
- Django backend with DRF (clubs, wrestlers, trainers, exercises, templates, trainings, homework, locations, leistungstest)
- Next.js 16 frontend with React, Shadcn UI, Tailwind
- JWT authentication
- Full CRUD for all entities
- Calendar view for trainings
- Homework management system
- Leistungstest tracking
2026-03-26 13:24:57 +01:00

65 lines
2.1 KiB
Python

from playwright.sync_api import sync_playwright
import sys
def test_login_flow():
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
console_errors = []
page.on("console", lambda msg: console_errors.append(msg.text) if msg.type == "error" else None)
# Navigate to login page
print("1. Navigating to login page...")
page.goto('http://localhost:3000/login')
page.wait_for_load_state('networkidle')
print(" ✓ Page loaded")
# Fill in login form
print("2. Filling login form...")
page.fill('input[id="username"]', 'admin')
page.fill('input[id="password"]', 'admin123')
print(" ✓ Credentials entered")
# Submit form
print("3. Submitting form...")
page.click('button[type="submit"]')
# Wait for navigation to dashboard
page.wait_for_url('**/dashboard**', timeout=10000)
print(f" ✓ Redirected to: {page.url}")
# Wait for dashboard to load
page.wait_for_load_state('networkidle')
# Check dashboard elements
print("4. Checking dashboard elements...")
# Check for sidebar
sidebar = page.locator('nav').first
if sidebar.is_visible():
print(" ✓ Sidebar navigation is visible")
# Check for page title
h1 = page.locator('h1').first
if h1.is_visible():
title_text = h1.text_content()
print(f" ✓ Dashboard title: '{title_text}'")
# Check for console errors
if console_errors:
print(f"⚠ Console errors: {console_errors}")
else:
print(" ✓ No console errors")
# Take screenshot
screenshot_path = '/tmp/dashboard.png'
page.screenshot(path=screenshot_path, full_page=True)
print(f" ✓ Screenshot saved to {screenshot_path}")
browser.close()
print("\n✅ Login flow test passed!")
if __name__ == "__main__":
test_login_flow()