diff --git a/components_derived/container_audit_events.py b/components_derived/container_audit_events.py index 1f75865..a82de7b 100644 --- a/components_derived/container_audit_events.py +++ b/components_derived/container_audit_events.py @@ -44,9 +44,54 @@ class AuditEventsContainer(EventsContainerComponent): # Действия: # Проверки: def check_content(self) -> None: - """Проверяет содержимое контейнера для отображения событий системного журнала.""" + """Проверяет содержимое контейнера для отображения событий аудита.""" expected_headers = [ 'ВРЕМЯ', 'ОПИСАНИЕ', 'ИДЕНТИФИКАТОР'] + expected_headers_security = [ 'ВРЕМЯ', 'ОПИСАНИЕ', 'ИДЕНТИФИКАТОР', 'ТИП'] + + self.should_be_toolbar() + self.should_be_toolbar_buttons() + + if not self.is_tab_active("view_events_button"): + self.click_tab_button("view_events_button") + self.wait_for_timeout(1000) + + self.should_be_events_table() + events_table = self.get_events_table_content() + + if len(events_table) == 0: + assert False, "The contents of the events table are missing" + + self.check_events_table_headers(events_table[0], expected_headers) + + if len(events_table) == 1: + logger.info("Table body is missing") + + self.should_be_pagination_buttons() + + events_filter = self.click_filter_button() + events_filter.check_content() + + filter_type_bar = events_filter.get_filtering_parameter("filter_type") + filter_type_title = filter_type_bar.get_selection_bar_title() + assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing" + + filter_role_bar = events_filter.get_filtering_parameter("filter_role") + filter_role_title = filter_role_bar.get_selection_bar_title() + assert filter_role_title == "Роль", "Filtering parameter bar 'Роль' is missing" + + filter_name_bar = events_filter.get_filtering_parameter("filter_name") + filter_name_title = filter_name_bar.get_selection_bar_title() + assert filter_name_title == "Имя", "Filtering parameter bar 'Имя' is missing" + + filter_ip_bar = events_filter.get_filtering_parameter("filter_ip") + filter_ip_title = filter_ip_bar.get_selection_bar_title() + assert filter_ip_title == "ip", "Filtering parameter bar 'ip' is missing" + + def check_content_security(self) -> None: + """Проверяет содержимое контейнера для отображения событий безопасности.""" + + expected_headers = [ 'ВРЕМЯ', 'ОПИСАНИЕ', 'ИДЕНТИФИКАТОР', 'ТИП'] self.should_be_toolbar() self.should_be_toolbar_buttons() diff --git a/elements/tooltip_button_element.py b/elements/tooltip_button_element.py index 9ac1ce1..89304cb 100644 --- a/elements/tooltip_button_element.py +++ b/elements/tooltip_button_element.py @@ -67,7 +67,7 @@ class TooltipButton(BaseElement): """ # Наведение на элемент для отображения подсказки - self.locator.hover() + self.locator.hover(force=True) # Получение элемента подсказки tooltip = self.page.locator(ButtonLocators.TOOLTIP) diff --git a/locators/settings_form_locators.py b/locators/settings_form_locators.py index d59fc1a..83bd744 100644 --- a/locators/settings_form_locators.py +++ b/locators/settings_form_locators.py @@ -27,3 +27,5 @@ class SettingsFormLocators: DROPDOWN_LIST = "//div[contains(@class, 'menuable__content__active')]" SELECTED_VALUES = "//div[@class='v-select__selections']" CLEAR_SELECTION_BUTTON = "div.v-input__icon--clear" + + PUSH_NOTIFICATIONS_BUTTON_SUBMIT = "//button[@data-testid='PUSH_NOTIFICATIONS__btn__submit']" diff --git a/pages/push_notifications_settings_tab.py b/pages/push_notifications_settings_tab.py index b62afda..b904a4a 100644 --- a/pages/push_notifications_settings_tab.py +++ b/pages/push_notifications_settings_tab.py @@ -49,15 +49,13 @@ class PushNotificationsSettingsTab(BasePage): users_setting_input = TextInput(page, loc. get_by_role("combobox"), "users_setting_input") - # users_setting_input = TextInput(page, - # page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\ - # get_by_role("combobox"), - # "users_setting_input") self.settings_form.add_content_item("users_setting_input", users_setting_input) self.settings_form.add_content_item("users_list", InteractiveDropdownList(page)) - self.settings_form.add_tooltip_button(page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\ - get_by_role("button", name='Отправить'), + # self.settings_form.add_tooltip_button(page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\ + # locator(SettingsFormLocators.PUSH_NOTIFICATION_BUTTON_SUBMIT), + # "submit_button") + self.settings_form.add_tooltip_button(page.locator(SettingsFormLocators.PUSH_NOTIFICATIONS_BUTTON_SUBMIT), "submit_button") self.alert = AlertComponent(page) @@ -145,6 +143,9 @@ class PushNotificationsSettingsTab(BasePage): self.should_be_form_toolbar() + self.settings_form.check_button_visibility("submit_button") + self.settings_form.check_button_tooltip("submit_button", "Отправить Push уведомление") + actual_input_field_names = self.input_fields_locators.keys() assert set(actual_input_field_names) == set(expected_input_field_names), \ f"Misscomparison input field names: Expected {expected_input_field_names}, Actual {actual_input_field_names}" @@ -161,8 +162,8 @@ class PushNotificationsSettingsTab(BasePage): f"Push notifications settings input form item with name '{name}' is missing" ) - self.settings_form.check_button_visibility("submit_button") - self.settings_form.check_button_tooltip("submit_button", "Отправить Push уведомление") + # self.settings_form.check_button_visibility("submit_button") + # self.settings_form.check_button_tooltip("submit_button", "Отправить Push уведомление") def should_be_toolbar(self) -> None: """Проверяет наличие тулбара страницы. diff --git a/tests/e2e/event_panel/test_audit_events_container_security.py b/tests/e2e/event_panel/test_audit_events_container_security.py index 8e493bf..e506acb 100644 --- a/tests/e2e/event_panel/test_audit_events_container_security.py +++ b/tests/e2e/event_panel/test_audit_events_container_security.py @@ -80,7 +80,7 @@ class TestAuditEventsContainerSecurity: security_events_container = mp.click_events_panel_audit_tab() browser.wait_for_timeout(2000) - security_events_container.check_content() + security_events_container.check_content_security() # Выход из системы текущего пользователя mp.do_logout()