Добавлен тест проверяющий невозможность отправки push-уведомления при незаполненных полях формы

ra4/management_rack
nsubbot 2026-02-18 13:46:45 +03:00
parent ba6bc49859
commit b8c3b55ebd
3 changed files with 51 additions and 3 deletions

View File

@ -82,3 +82,8 @@ class TooltipButton(BaseElement):
f"Текст подсказки не соответствует ожидаемому. " f"Текст подсказки не соответствует ожидаемому. "
f"Ожидалось: '{expected_text}', получено: '{actual_text}'" f"Ожидалось: '{expected_text}', получено: '{actual_text}'"
) )
def is_disabled(self) -> bool:
""" Возвращает значение, отключена ли кнопка (является скрытой) """
return self.locator.is_disabled()

View File

@ -4,11 +4,9 @@
Позволяет проверять состояние и взаимодействовать с элементами вкладки. Позволяет проверять состояние и взаимодействовать с элементами вкладки.
""" """
import re
from playwright.sync_api import Page from playwright.sync_api import Page
from locators.settings_form_locators import SettingsFormLocators from locators.settings_form_locators import SettingsFormLocators
from elements.text_input_element import TextInput from elements.text_input_element import TextInput
from components.toolbar_component import ToolbarComponent
from components.alert_component import AlertComponent from components.alert_component import AlertComponent
from components_derived.settings_form_component import SettingsFormComponent from components_derived.settings_form_component import SettingsFormComponent
from components_derived.interactive_dropdown_list import InteractiveDropdownList from components_derived.interactive_dropdown_list import InteractiveDropdownList
@ -168,7 +166,7 @@ class PushNotificationsSettingsTab(BasePage):
"""Проверяет наличие сообщения об успешной отправке push-уведомления. """Проверяет наличие сообщения об успешной отправке push-уведомления.
Raises: Raises:
AssertionError: Если тулбар отсутствует. AssertionError: Если alert отсутствует.
""" """
alert_type = self.alert.get_alert_type() alert_type = self.alert.get_alert_type()
@ -176,3 +174,13 @@ class PushNotificationsSettingsTab(BasePage):
self.alert.check_alert_presence('\nPush-уведомление\nуспешно отправлено\n') self.alert.check_alert_presence('\nPush-уведомление\nуспешно отправлено\n')
self.alert.check_alert_absence('\nPush-уведомление\nуспешно отправлено\n') self.alert.check_alert_absence('\nPush-уведомление\nуспешно отправлено\n')
def should_be_disabled_button(self) -> None:
"""Проверяет, что кнопка 'Отправить' отключена.
Raises:
AssertionError: Если кнопка включена.
"""
submit_button = self.settings_form.get_button_by_name("submit_button")
assert submit_button.is_disabled, "Submit button should be disabled"

View File

@ -122,3 +122,38 @@ class TestPushNotificationsSettingsTab:
push_notification_settings_tab.clear_users_setting_value() push_notification_settings_tab.clear_users_setting_value()
selected_users = push_notification_settings_tab.get_users_setting_value() selected_users = push_notification_settings_tab.get_users_setting_value()
assert len(selected_users) == 0, "There should be no selected users" assert len(selected_users) == 0, "There should be no selected users"
# @pytest.mark.develop
def test_send_push_notification_for_empty_fields(self, browser: Page) -> None:
"""Тест содержимого вкладки настройки Push уведомлений.
Проверяет:
запрет отправки Push уведомления при незаполненных полях формы (кнопка 'Отправить' должна быть заблокирована)
"""
# Инициализация вкладки
push_notification_settings_tab = PushNotificationsSettingsTab(browser)
# оставить пустым поле 'Сообщение', заполнить поле 'Пользователи'
push_notification_settings_tab.input_message("")
msg_value = push_notification_settings_tab.get_message_setting_value()
assert msg_value == "", "Actual message field is not empty"
push_notification_settings_tab.select_users(["manager"])
selected_users = push_notification_settings_tab.get_users_setting_value()
assert selected_users == "manager", \
f"Actual users field value {selected_users} is not equal expected users field value 'manager'"
push_notification_settings_tab.should_be_disabled_button()
# заполнить поле 'Сообщение', очистить поле 'Пользователи'
push_notification_settings_tab.input_message("TEST")
msg_value = push_notification_settings_tab.get_message_setting_value()
assert msg_value == "TEST", \
f"Actual message field value {msg_value} is not equal expected message field value 'TEST'"
push_notification_settings_tab.deselect_users(["manager"])
selected_users = push_notification_settings_tab.get_users_setting_value()
assert selected_users == "", "Actual users field is not empty"
push_notification_settings_tab.should_be_disabled_button()