"""Модуль тестов панели событий. Содержит тесты для проверки функциональности панели событий в приложении. """ # import pytest from playwright.sync_api import Page from pages.main_page import MainPage from pages.login_page import LoginPage # @pytest.mark.smoke class TestEventPanel: """Класс тестов для проверки панели событий. Тесты покрывают следующие сценарии: 1. test_event_panel_content: Проверяет содержимое панели событий 2. test_event_panel_expand_buttons: Проверяет состояние и количество кнопок расширения рабочей области панели событий Атрибуты: browser: Фикстура для работы с браузером. """ # @pytest.mark.develop def test_event_panel_content(self, browser: Page) -> None: """Проверяет содержимое панели событий. Args: browser: Экземпляр страницы Playwright. """ lp = LoginPage(browser) lp.do_login() mp = MainPage(browser) mp.should_be_event_panel() # Проверяем соответствие тултипов информации на кнопках tooltip_event_counters = mp.get_event_counters_by_tooltips() button_event_counters = mp.get_event_counters_by_tooltips() for event, counter in tooltip_event_counters.items(): button_counter = button_event_counters.get(event) if button_counter is None: assert False, f"Found unexpected tooltip {event} for event button" if button_counter != counter: assert False, f"Expected tooltip value {counter} is not equal button value {button_counter} for event button {event}" def test_event_panel_expand_buttons(self, browser: Page) -> None: """Проверяет состояние и количество кнопок расширения рабочей области панели событий. Args: browser: Экземпляр страницы Playwright. """ lp = LoginPage(browser) lp.do_login() mp = MainPage(browser) # Проверяем начальное состояние - панель событий внизу, видна одна кнопка expand less current_position = mp.get_events_panel_position() assert current_position == "bottom", \ "Events panel should be located on main page bottom" assert mp.check_expand_less_button(), \ "Expand less button should be present" assert mp.check_expand_more_button(), \ "Expand more button should be absent" mp.click_events_panel_expand_less_button() mp.wait_for_timeout(500) # Проверяем, что панель событий переместилась в середину экрана, # видна обе кнопки expand less и expand more current_position = mp.get_events_panel_position() assert current_position == "center", \ "Events panel should be located on main page center" assert mp.check_expand_less_button(), \ "Expand less button should be present" assert mp.check_expand_more_button(), \ "Expand more button should be present" mp.click_events_panel_expand_less_button() mp.wait_for_timeout(500) # Проверяем, что панель событий находится вверху экрана, # видна кнопки expand more и отсутствует expand less current_position = mp.get_events_panel_position() assert current_position == "top", \ "Events panel should be located on main page top" assert mp.check_expand_less_button(), \ "Expand less button should be absent" assert mp.check_expand_more_button(), \ "Expand more button should be present" # перемещение в отратном напрвлении сверху вниз mp.click_events_panel_expand_more_button() mp.wait_for_timeout(500) current_position = mp.get_events_panel_position() assert current_position == "center", \ "Events panel should be located on main page center" assert mp.check_expand_less_button(), \ "Expand less button should be present" assert mp.check_expand_more_button(), \ "Expand more button should be present" mp.click_events_panel_expand_more_button() mp.wait_for_timeout(500) current_position = mp.get_events_panel_position() assert current_position == "bottom", \ "Events panel should be located on main page bottom" assert mp.check_expand_less_button(), \ "Expand less button should be present" assert mp.check_expand_more_button(), \ "Expand more button should be absent"