125 lines
5.7 KiB
Python
125 lines
5.7 KiB
Python
"""Модуль тестов вкладки настройки Push уведомлений.
|
||
|
||
Содержит тесты для проверки корректности отображения
|
||
и функциональности элементов страницы настройки Push уведомлений.
|
||
"""
|
||
|
||
import pytest
|
||
from playwright.sync_api import Page
|
||
from pages.login_page import LoginPage
|
||
from pages.main_page import MainPage
|
||
from pages.push_notifications_settings_tab import PushNotificationsSettingsTab
|
||
|
||
|
||
# @pytest.mark.smoke
|
||
class TestPushNotificationsSettingsTab:
|
||
"""Набор тестов для вкладки настройки Push уведомлений.
|
||
|
||
Проверяет корректность отображения и функциональность элементов вкладки настройки Push уведомлений.
|
||
|
||
Тесты покрывают следующие сценарии:
|
||
1. test_session_settings_tab_content: Тест содержимого вкладки настройки Push уведомлений
|
||
|
||
"""
|
||
|
||
@pytest.fixture(scope="function", autouse=True)
|
||
def setup(self, browser: Page) -> None:
|
||
"""Фикстура для подготовки тестового окружения.
|
||
|
||
Выполняет:
|
||
1. Авторизацию в системе
|
||
2. Переход на вкладку настройки Push уведомлений через панель навигации
|
||
"""
|
||
# Авторизация в системе
|
||
login_page = LoginPage(browser)
|
||
login_page.do_login()
|
||
|
||
# Инициализация главной страницы
|
||
main_page = MainPage(browser)
|
||
|
||
# Проверка и взаимодействие с элементами навигации
|
||
main_page.should_be_navigation_panel()
|
||
main_page.click_main_navigation_panel_item("Настройки")
|
||
main_page.click_subpanel_item("Уведомления")
|
||
main_page.click_subpanel_item("Push уведомления")
|
||
|
||
# @pytest.mark.develop
|
||
def test_push_notifications_settings_tab_content(self, browser: Page) -> None:
|
||
"""Тест содержимого вкладки настройки Push уведомлений.
|
||
|
||
Проверяет:
|
||
Наличие и корректность элементов интерфейса
|
||
"""
|
||
expected_msg_value = "test"
|
||
|
||
# Инициализация вкладки
|
||
push_notification_settings_tab = PushNotificationsSettingsTab(browser)
|
||
|
||
# Проверка элементов интерфейса
|
||
push_notification_settings_tab.check_content()
|
||
|
||
msg_value = push_notification_settings_tab.get_message_setting_value()
|
||
assert msg_value == expected_msg_value, \
|
||
f"Actual message field value {msg_value} is not equal expected message field value {expected_msg_value}"
|
||
|
||
# @pytest.mark.develop
|
||
def test_send_push_notification(self, browser: Page) -> None:
|
||
"""Тест содержимого вкладки настройки Push уведомлений.
|
||
|
||
Проверяет:
|
||
Заполнение полей и отправку Push уведомления
|
||
"""
|
||
receivers = ["admin", "manager", "operator"]
|
||
|
||
# Инициализация вкладки
|
||
push_notification_settings_tab = PushNotificationsSettingsTab(browser)
|
||
|
||
expected_msg_value = "My test message"
|
||
push_notification_settings_tab.input_message(expected_msg_value)
|
||
msg_value = push_notification_settings_tab.get_message_setting_value()
|
||
assert msg_value == expected_msg_value, \
|
||
f"Actual message field value {msg_value} is not equal expected message field value {expected_msg_value}"
|
||
|
||
push_notification_settings_tab.select_users(receivers)
|
||
|
||
sep = ", "
|
||
expected_users = sep.join(receivers)
|
||
selected_users = push_notification_settings_tab.get_users_setting_value()
|
||
assert selected_users == expected_users, \
|
||
f"Actual users field value {selected_users} is not equal expected users field value {expected_users}"
|
||
|
||
push_notification_settings_tab.click_submit_button()
|
||
push_notification_settings_tab.should_be_success_alert()
|
||
|
||
# @pytest.mark.develop
|
||
def test_users_setting_input(self, browser: Page) -> None:
|
||
"""Тест содержимого вкладки настройки Push уведомлений.
|
||
|
||
Проверяет:
|
||
Заполнение и очистку поля 'Пользователи'
|
||
"""
|
||
receivers = ["manager", "operator", "collector"]
|
||
sep = ", "
|
||
|
||
# Инициализация вкладки
|
||
push_notification_settings_tab = PushNotificationsSettingsTab(browser)
|
||
|
||
push_notification_settings_tab.select_users(receivers)
|
||
|
||
expected_users = sep.join(receivers)
|
||
selected_users = push_notification_settings_tab.get_users_setting_value()
|
||
assert selected_users == expected_users, \
|
||
f"Actual users field value {selected_users} is not equal expected users field value {expected_users}"
|
||
|
||
receivers.remove("collector")
|
||
push_notification_settings_tab.deselect_users(["collector"])
|
||
|
||
expected_users = sep.join(receivers)
|
||
selected_users = push_notification_settings_tab.get_users_setting_value()
|
||
assert selected_users == expected_users, \
|
||
f"Actual users field value {selected_users} is not equal expected users field value {expected_users}"
|
||
|
||
push_notification_settings_tab.clear_users_setting_value()
|
||
selected_users = push_notification_settings_tab.get_users_setting_value()
|
||
assert len(selected_users) == 0, "There should be no selected users"
|