Update tests

This commit is contained in:
2025-05-16 17:38:21 +02:00
parent 6daceef913
commit fd2922fde8
19 changed files with 1137 additions and 17 deletions

View File

@ -0,0 +1,79 @@
"""Test of the dashboard landing page."""
import time
import allure
import pytest
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.support.select import Select
from tests.integration.types import AdminServer
from .helpers.auth import login
from .helpers.db import DatabasePreloader
from .helpers.wait_helpers import (
wait_for_element_to_be_visisble,
)
class TestDashboardPage:
"""Test dashboard page."""
@pytest.fixture(autouse=True)
def login(self, ui_admin_server: AdminServer, driver: WebDriver) -> None:
"""Login."""
login(ui_admin_server, driver)
@pytest.fixture(autouse=True)
def create_testdata(self, ui_admin_server: AdminServer) -> None:
"""Preload some test data."""
test_clients = ["client1", "client2", "client3"]
admin_url, (username, password) = ui_admin_server
db = DatabasePreloader(admin_url, username, password)
db.create_client(*test_clients)
secrets = [
("secret1", ["client1", "client2"]),
("secret2", ["client1"]),
("secret3", ["client3"]),
("secret4", ["client2"]),
]
db.create_secret(*secrets)
@allure.title("Test Dashboard view")
def test_dashboard_elements(self, driver: WebDriver) -> None:
"""Test elements on the dashboard."""
wait_for_element_to_be_visisble(driver, "dashboard-stats-panel")
stats_clients = driver.find_element(By.ID, "stats-client-count")
assert stats_clients.text == "3"
stats_secrets = driver.find_element(By.ID, "stats-secret-count")
assert stats_secrets.text == "4"
stats_audit = driver.find_element(By.ID, "stats-audit-count")
assert stats_audit.text.isdecimal()
assert int(stats_audit.text) > 0
# Check that there is at least one row in each audit table
login_table = driver.find_element(By.ID, "last-login-events")
login_table_rows = login_table.find_elements(By.XPATH, ".//tr")
assert len(login_table_rows) > 1
audit_table = driver.find_element(By.ID, "last-audit-events")
audit_table_rows = audit_table.find_elements(By.XPATH, ".//tr")
assert len(audit_table_rows) > 1
# Find a questionmark hover
login_info_btn = login_table_rows[-1].find_element(By.XPATH, "./td[1]//button")
login_info_target = login_info_btn.get_attribute("data-popover-target")
assert login_info_target is not None
ActionChains(driver).move_to_element(login_info_btn).perform()
wait_for_element_to_be_visisble(driver, login_info_target)
audit_info_btn = audit_table_rows[-1].find_element(By.XPATH, "./td[1]//button")
audit_info_target = audit_info_btn.get_attribute("data-popover-target")
assert audit_info_target is not None
ActionChains(driver).move_to_element(audit_info_btn).perform()
wait_for_element_to_be_visisble(driver, audit_info_target)