e-nms_qa_automation/tests/e2e/test_push_notifications_set...

125 lines
5.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"""Модуль тестов вкладки настройки 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"