# TestUsersModalWindow - Документация тестов eNODE-Мониторинг

Skip to content

# TestUsersModalWindow

Модуль тестов модальных окон пользователей.

Содержит тесты для проверки функциональности и прокрутки модальных окон работы с пользователями.

## `TestUsersModalWindow`

Класс тестов для проверки модальных окон пользователей.

Source code in `tests\components\test_user_modal_window.py`

    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92

    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_configuration_navigation_panel_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)

### `setup(browser)`

Настраивает тестовое окружение перед каждым тестом.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`browser` | `Page` | Экземпляр страницы Playwright. | required

Source code in `tests\components\test_user_modal_window.py`

    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

    @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_configuration_navigation_panel_item("Пользователи")

### `test_add_user_window_scrolling(browser)`

Проверяет прокрутку окна добавления пользователя.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`browser` | `Page` | Экземпляр страницы Playwright. | required

Steps

1. Открывает окно добавления
2. Проверяет вертикальную прокрутку

Source code in `tests\components\test_user_modal_window.py`

    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92

    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)

### `test_edit_user_window_scrolling(browser)`

Проверяет прокрутку окна редактирования пользователя.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`browser` | `Page` | Экземпляр страницы Playwright. | required

Steps

1. Открывает окно редактирования
2. Проверяет вертикальную прокрутку
3. Проверяет горизонтальную прокрутку

Source code in `tests\components\test_user_modal_window.py`

    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66

    @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)