"""Модуль тестов панели навигации. Содержит тесты для проверки функциональности панели навигации в приложении. """ import pytest from playwright.sync_api import Page from pages.main_page import MainPage from pages.login_page import LoginPage # @pytest.mark.smoke class TestNavigationPanel: """Класс тестов для проверки панели навигации. Тесты покрывают следующие сценарии: - test_expand_panel: Проверяет полное раскрытие панели навигации - test_sub_panel_item_click: Проверяет возможность клика заданного элемента в подпанели навигации Атрибуты: browser: Фикстура для работы с браузером. """ # @pytest.mark.develop def test_expand_panel(self, browser: Page): """Проверяет полное раскрытие панели навигации. Args: browser: Фикстура для работы с браузером. """ # Действия: lp = LoginPage(browser) lp.do_login() # Мы на главной странице mp = MainPage(browser) # Проверки: # Проверяем наличие панели навигации mp.should_be_navigation_panel() # Открываем все пункты панели mp.click_main_navigation_panel_item("Настройки") mp.expand_navigation_subpanel() mp.click_main_navigation_panel_item("Объекты") mp.wait_for_timeout(300) mp.expand_navigation_subpanel() # @pytest.mark.develop def test_sub_panel_item_click(self, browser: Page): """Проверяет возможность клика заданного элемента в подпанели навигации. Args: browser: Фикстура для работы с браузером. """ # Действия: lp = LoginPage(browser) lp.do_login() # Мы на главной странице mp = MainPage(browser) # Проверки: # Проверяем наличие панели навигации mp.should_be_navigation_panel() # Открываем разные пункты панели mp.click_main_navigation_panel_item("Настройки") mp.click_subpanel_item("Обслуживание и диагностика") mp.click_subpanel_item("Статус компонентов") mp.wait_for_timeout(2000) mp.click_subpanel_item("Сеансы") mp.click_subpanel_item("Настройки", parent="Сеансы") # Открываем/закрываем пункт панели mp.click_subpanel_item("Пользователи") mp.click_subpanel_item("Пользователи") mp.wait_for_timeout(2000) # Открываем пункты панели с одинаковыми имнами, но разным расположением mp.click_subpanel_item("Редактор") mp.click_subpanel_item("Шаблоны") mp.wait_for_timeout(2000) mp.click_subpanel_item("Zero Touch Provisioning") # unsupported # mp.click_subpanel_item("Шаблоны", parent="Zero Touch Provisioning") mp.wait_for_timeout(2000) # Переходим к Объектам mp.click_main_navigation_panel_item("Объекты") mp.wait_for_timeout(5000) mp.click_subpanel_item("test-zone-01") mp.wait_for_timeout(3000) # Переходим к Стойке mp.click_subpanel_item("Test-Rack-01") mp.wait_for_timeout(5000) # Переходим Здание ЦОД 4 # mp.click_subpanel_item("Здание ЦОД 4") # mp.wait_for_timeout(3000) # # Переходим к Стойка КСПД с указанием родителя # mp.click_subpanel_item("Стойка КСПД", parent="Здание ЦОД 4") # mp.wait_for_timeout(5000) # Переходим к Объектам mp.click_main_navigation_panel_item("Объекты") mp.click_main_navigation_panel_item("Объекты") # баг mp.wait_for_timeout(5000) # mp.click_subpanel_item("Виртуальные устройства") # mp.wait_for_timeout(3000) # # Переходим к Стойка систем питания с указанием родителя # mp.click_subpanel_item("Стойка систем питания", parent="Виртуальные устройства") # mp.wait_for_timeout(5000)