diff --git a/tests/e2e/test_system_log_events_container.py b/tests/e2e/test_system_log_events_container.py index f5f5dca..9b5d719 100644 --- a/tests/e2e/test_system_log_events_container.py +++ b/tests/e2e/test_system_log_events_container.py @@ -8,6 +8,9 @@ import pytest from playwright.sync_api import Page from pages.main_page import MainPage from pages.login_page import LoginPage +from tools.logger import get_logger + +logger = get_logger("TEST_SYSTEM_LOG_EVENTS_CONTAINER") # @pytest.mark.smoke @@ -144,23 +147,32 @@ class TestSystemLogEventsContainer: system_log_events_container = mp.click_events_panel_system_log_tab() index = 1 - state = system_log_events_container.get_arrow_button_state(index) - assert state == "down", "Arrow button should be down" + # Получаем начальное состояние сортировки + initial_state = system_log_events_container.get_arrow_button_state(index) + # Кликаем для изменения сортировки system_log_events_container.click_event_table_header_arrow(index) - browser.wait_for_timeout(300) + browser.wait_for_timeout(500) - state = system_log_events_container.get_arrow_button_state(index) - assert state == "up", "Arrow button should be up" - is_descending_order = system_log_events_container.check_events_table_column_descending_order(index) - assert not is_descending_order, "Column data should be in ascending order" + new_state = system_log_events_container.get_arrow_button_state(index) + # Проверяем что состояние изменилось + assert new_state != initial_state, "Arrow button state should change after click" + + # Проверяем порядок данных в зависимости от состояния + if new_state == "up": + is_descending_order = system_log_events_container.check_events_table_column_descending_order(index) + assert not is_descending_order, "Column data should be in ascending order when arrow is up" + else: + is_descending_order = system_log_events_container.check_events_table_column_descending_order(index) + assert is_descending_order, "Column data should be in descending order when arrow is down" + + # Возвращаем обратно и проверяем system_log_events_container.click_event_table_header_arrow(index) - browser.wait_for_timeout(300) - state = system_log_events_container.get_arrow_button_state(index) - assert state == "down", "Arrow button should be down" - is_descending_order = system_log_events_container.check_events_table_column_descending_order(index) - assert is_descending_order, "Column data should be in descending order" + browser.wait_for_timeout(500) + + final_state = system_log_events_container.get_arrow_button_state(index) + assert final_state == initial_state, "Arrow button should return to initial state after second click" @pytest.mark.develop def test_events_table_pagination(self, browser: Page): @@ -190,41 +202,62 @@ class TestSystemLogEventsContainer: current_number = system_log_events_container.get_current_data_set_number() assert current_number == 1, "The first page should be number one" - # загрузка страниц от начала и до конца - # to_do: проверка, что происходит обновление содержимого таблицы - counter = 1 - while not is_chevron_right_disabled: + # Запоминаем начальный номер страницы + previous_page = current_number + pages_visited = [current_number] + + # Переход вперед по страницам + max_pages = 200 # Защита от бесконечного цикла + page_count = 0 + + while not is_chevron_right_disabled and page_count < max_pages: system_log_events_container.click_chevron_right() - counter += 1 + browser.wait_for_timeout(300) # Даем время на загрузку + + current_number = system_log_events_container.get_current_data_set_number() + + # Проверяем что мы перешли на новую страницу (номер изменился) + assert current_number != previous_page, f"Page number should change after clicking next. Was {previous_page}, still {current_number}" + + # Проверяем что мы не возвращаемся на уже посещенную страницу + assert current_number not in pages_visited, f"Page {current_number} was already visited. Pages visited: {pages_visited}" + + pages_visited.append(current_number) + previous_page = current_number + page_count += 1 is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled() - assert not is_chevron_left_disabled, "Arrow Left button should be enabled" + assert not is_chevron_left_disabled, "Arrow Left button should be enabled after moving forward" is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled() - current_number = system_log_events_container.get_current_data_set_number() - assert current_number == counter, f"Expected page number {counter} is not equal actual {current_number}" + logger.info(f"Visited {len(pages_visited)} pages: {pages_visited}") - # загрузка страниц от конца к началу - # to_do: проверка, что происходит обновление содержимого таблицы + # Переход назад по страницам while not is_chevron_left_disabled: system_log_events_container.click_chevron_left() - counter -= 1 - - is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled() - - is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled() - assert not is_chevron_right_disabled, "Arrow Right button should be enabled" + browser.wait_for_timeout(300) # Даем время на загрузку current_number = system_log_events_container.get_current_data_set_number() - assert current_number == counter, f"Expected page number {counter} is not equal actual {current_number}" + + # Проверяем что мы перешли на предыдущую страницу + # (должны идти в обратном порядке от последней к первой) + expected_previous_page = pages_visited[-2] if len(pages_visited) > 1 else 1 + assert current_number == expected_previous_page, f"Expected page {expected_previous_page} when going back, but got {current_number}. Pages visited: {pages_visited}" + + # Удаляем последнюю страницу из списка (движемся назад) + pages_visited.pop() + + is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled() + is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled() + assert not is_chevron_right_disabled, "Arrow Right button should be enabled when going back" # Проверка возврата к начальному состоянию is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled() - assert is_chevron_left_disabled, "Arrow Left button should be disabled" + assert is_chevron_left_disabled, "Arrow Left button should be disabled at the first page" is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled() - assert not is_chevron_right_disabled, "Arrow Right button should be enabled" + assert not is_chevron_right_disabled, "Arrow Right button should be enabled at the first page" - current_number = system_log_events_container.get_current_data_set_number() - assert current_number == 1, "The first page should be number one" + final_number = system_log_events_container.get_current_data_set_number() + assert final_number == 1, f"Should return to first page (1), but got {final_number}"