Spaces:
Running
Running
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) | |