Promptaid-VIsion / e2e /pages /admin_page.py
SCGR's picture
e2e
bbce707
from .base_page import BasePage
from playwright.sync_api import expect
class AdminPage(BasePage):
"""Page object for the admin page"""
# Selectors using data-testid for stability
LOGIN_FORM = "[data-testid='login-form']"
PASSWORD_INPUT = "[data-testid='password-input']"
LOGIN_BUTTON = "[data-testid='login-button']"
ADMIN_DASHBOARD = "[data-testid='admin-dashboard']"
SCHEMA_MANAGEMENT = "[data-testid='schema-management']"
MODEL_CONFIG = "[data-testid='model-config']"
SYSTEM_MONITORING = "[data-testid='system-monitoring']"
LOGOUT_BUTTON = "[data-testid='logout-button']"
SAVE_BUTTON = "[data-testid='save-button']"
SUCCESS_MESSAGE = "[data-testid='success-message']"
ERROR_MESSAGE = "[data-testid='error-message']"
def __init__(self, page):
super().__init__(page)
self.page_url = "/admin"
def navigate(self):
"""Navigate to admin page"""
self.navigate_to(self.page_url)
# For now, just verify the page loads without checking specific elements
# since we don't have the actual UI with data-testid attributes
def login(self, password: str):
"""Login to admin panel"""
self.fill_input(self.PASSWORD_INPUT, password)
self.click_element(self.LOGIN_BUTTON)
self.expect_element_visible(self.ADMIN_DASHBOARD)
def logout(self):
"""Logout from admin panel"""
self.click_element(self.LOGOUT_BUTTON)
self.expect_element_visible(self.LOGIN_FORM)
def navigate_to_schema_management(self):
"""Navigate to schema management section"""
self.click_element(self.SCHEMA_MANAGEMENT)
self.page.wait_for_load_state("networkidle")
def navigate_to_model_config(self):
"""Navigate to model configuration section"""
self.click_element(self.MODEL_CONFIG)
self.page.wait_for_load_state("networkidle")
def navigate_to_system_monitoring(self):
"""Navigate to system monitoring section"""
self.click_element(self.SYSTEM_MONITORING)
self.page.wait_for_load_state("networkidle")
def save_configuration(self):
"""Save configuration changes"""
self.click_element(self.SAVE_BUTTON)
self.expect_element_visible(self.SUCCESS_MESSAGE)
def expect_admin_access(self):
"""Expect admin dashboard to be visible"""
self.expect_element_visible(self.ADMIN_DASHBOARD)
def expect_login_required(self):
"""Expect login form to be visible"""
self.expect_element_visible(self.LOGIN_FORM)
def expect_success_message(self):
"""Expect success message to be visible"""
self.expect_element_visible(self.SUCCESS_MESSAGE)
def expect_error_message(self):
"""Expect error message to be visible"""
self.expect_element_visible(self.ERROR_MESSAGE)