Update tests
This commit is contained in:
79
tests/frontend/test_dashboard.py
Normal file
79
tests/frontend/test_dashboard.py
Normal 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)
|
||||
Reference in New Issue
Block a user