"""Модуль тестов модальных окон пользователей. Содержит тесты для проверки функциональности и прокрутки модальных окон работы с пользователями. """ import pytest from playwright.sync_api import Page from pages.users_tab import UsersTab from pages.main_page import MainPage from pages.login_page import LoginPage class TestUsersModalWindow: """Класс тестов для проверки модальных окон пользователей.""" @pytest.fixture(scope="function", autouse=True) def setup(self, browser: Page) -> None: """Настраивает тестовое окружение перед каждым тестом. Args: browser: Экземпляр страницы Playwright. """ lp = LoginPage(browser) lp.do_login() mp = MainPage(browser) mp.should_be_navigation_panel() mp.click_main_navigation_panel_item("Настройки") mp.click_subpanel_item("Пользователи") @pytest.mark.develop def test_edit_user_window_scrolling(self, browser: Page) -> None: """Проверяет прокрутку окна редактирования пользователя. Args: browser: Экземпляр страницы Playwright. Steps: 1. Открывает окно редактирования 2. Проверяет вертикальную прокрутку 3. Проверяет горизонтальную прокрутку """ ut = UsersTab(browser) user_name, role = ut.open_edit_user_page_by_index(0) modal_window = ut.get_modal_window(user_name) is_scrollable_vertically = modal_window.check_window_vertical_scrolling() assert is_scrollable_vertically, "Should be vertical scrolling" modal_window.scroll_window_down() modal_window.check_button_presence("close") ut.wait_for_timeout(3000) modal_window.scroll_window_up() modal_window.check_toolbar_button_presence("close") ut.wait_for_timeout(3000) is_scrollable_horizontally = modal_window.check_window_horizontal_scrolling() assert is_scrollable_horizontally, "Should be horizontal scrolling" modal_window.scroll_window_right() ut.wait_for_timeout(3000) modal_window.scroll_window_left() ut.wait_for_timeout(2000) def test_add_user_window_scrolling(self, browser: Page) -> None: """Проверяет прокрутку окна добавления пользователя. Args: browser: Экземпляр страницы Playwright. Steps: 1. Открывает окно добавления 2. Проверяет вертикальную прокрутку """ ut = UsersTab(browser) ut.open_add_user_window() modal_window = ut.get_modal_window("add_user") is_scrollable_vertically = modal_window.check_window_vertical_scrolling() assert is_scrollable_vertically, "Should be vertical scrolling" modal_window.scroll_window_down() modal_window.check_button_presence("close") ut.wait_for_timeout(3000) modal_window.scroll_window_up() modal_window.check_toolbar_button_presence("close") ut.wait_for_timeout(3000) ## Временно закомментарено - для окна добавления пользователя убрали горизонтальный скроллинг - BUG??? # is_scrollable_horizontally = modal_window.check_window_horizontal_scrolling() # assert is_scrollable_horizontally, "Should be horizontal scrolling" # modal_window.scroll_window_right() # ut.wait_for_timeout(3000) # modal_window.scroll_window_left() # ut.wait_for_timeout(2000)