From c6542c97a64784dc0df97eb534eaf1626e80fac8 Mon Sep 17 00:00:00 2001 From: Radislav Date: Fri, 20 Mar 2026 11:11:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=98=D0=BC=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/rack_page.py | 4 -- tests/e2e/elements/test_create_rack.py | 21 ++++++---- tests/e2e/elements/test_edit_rack.py | 54 ++++++++++++++++++++++++-- 3 files changed, 64 insertions(+), 15 deletions(-) diff --git a/pages/rack_page.py b/pages/rack_page.py index 59d736d..da7170b 100644 --- a/pages/rack_page.py +++ b/pages/rack_page.py @@ -449,10 +449,6 @@ class RackPage(BasePage): self.toolbar.check_button_visibility("edit") self.toolbar.check_button_tooltip("edit", "Изменить") - # Кликаем на кнопку "Изменить" для проверки функциональности - #self.toolbar.get_button_by_name("edit").click() - - def should_have_hide_rack_button(self) -> None: """ Проверка кнопки "Скрыть стойку". diff --git a/tests/e2e/elements/test_create_rack.py b/tests/e2e/elements/test_create_rack.py index 4e7b80d..5c29dd2 100644 --- a/tests/e2e/elements/test_create_rack.py +++ b/tests/e2e/elements/test_create_rack.py @@ -347,6 +347,7 @@ class TestCreateRack: logger.debug("System prevented creating rack with duplicate name") + @pytest.mark.develop def test_required_fields_validation(self, browser: Page, cleanup_racks) -> None: """Тест проверки обязательных полей при создании стойки.""" logger.debug("Starting required fields validation test") @@ -368,29 +369,31 @@ class TestCreateRack: rack_form = CreateRackForm(browser) - # ========== Тест 1: Обязательные поля высота и глубина пустые ========== + # ========== Тест 1: Обязательные поля имя, высота и глубина пустые ========== logger.debug("Test 1: Both required fields (height, depth) are empty") - # Очищаем поля высоты и глубины перед заполнением + # Очищаем поля имя, высоты и глубины перед заполнением + rack_form.clear_field("Имя") rack_form.clear_field("Высота в юнитах") rack_form.clear_field("Глубина (мм)") test_data_1 = CreateRackData( - name=self.TEST_RACK_NAME, + name="", usize="", depth="" ) rack_form.fill_rack_data(test_data_1) self.create_child_frame.click_add_button() - self.create_child_frame.wait_for_timeout(500) - # Проверяем alert для высоты, глубины + # Проверяем alert для имени, высоты, глубины + self.alert.check_alert_presence(expected_alert_text_name, timeout=7000) self.alert.check_alert_presence(expected_alert_text_height, timeout=7000) self.alert.check_alert_presence(expected_alert_text_depth, timeout=7000) - # Проверяем, закрылся ли автоматически alert для высоты, глубины - self.alert.check_alert_absence(expected_alert_text_height, timeout=7000) + # Проверяем, закрылся ли автоматически alert для имени, высоты, глубины + self.alert.check_alert_absence(expected_alert_text_name, timeout=7000) + self.alert.check_alert_absence(expected_alert_text_height, timeout=500) self.alert.check_alert_absence(expected_alert_text_depth, timeout=500) # Проверяем подсветку полей @@ -465,7 +468,6 @@ class TestCreateRack: rack_form.fill_rack_data(test_data_4) self.create_child_frame.click_add_button() - self.create_child_frame.wait_for_timeout(500) # Проверяем alert для имени self.alert.check_alert_presence(expected_alert_text_name, timeout=7000) @@ -474,3 +476,6 @@ class TestCreateRack: self.alert.check_alert_absence(expected_alert_text_name, timeout=7000) logger.debug("Test 4 completed: System correctly validates empty name field") + + # ========== Тест 5: Поле "Имя" не более 35 знаков ========== + # разработчик должен ограничить длину имени - не более 35 знаков \ No newline at end of file diff --git a/tests/e2e/elements/test_edit_rack.py b/tests/e2e/elements/test_edit_rack.py index 129cbc6..ea6e9b5 100644 --- a/tests/e2e/elements/test_edit_rack.py +++ b/tests/e2e/elements/test_edit_rack.py @@ -304,7 +304,7 @@ class TestRackEdit: rack_edit.click_done_button() # Проверяем уведомление об успешном обновлении - expected_alert_text = "Элемент успешно обновлён" + expected_alert_text = "Успешно обновлено" self.alert.check_alert_presence(expected_alert_text, timeout=7000) self.alert.check_alert_absence(expected_alert_text, timeout=7000) @@ -336,6 +336,54 @@ class TestRackEdit: logger.debug("General info tab test completed successfully") + def test_required_field_name_validation(self, browser: Page) -> None: + """Тест проверки обязательного поля ИМЯ при создании стойки.""" + + logger.debug(f"Starting required field name validation test for rack: {self.RACK_NAME}") + + rack_page = RackPage(browser) + + # Переходим в режим редактирования + rack_page.click_edit_button() + + # Создаем экземпляр EditRackMaker + rack_edit = EditRackMaker(browser, self.RACK_NAME) + + # ========== Тест 1: Обязательное поле имя пустое ========== + # Очищаем поле имя + rack_edit.clear_field("Имя") + + # Создаем тестовые данные для заполнения поля + test_data_1 = EditRackData( + name="" + ) + + rack_edit.fill_rack_data(test_data_1) + rack_edit.click_done_button() + + # Проверяем уведомление об ошибочном обновлении + expected_alert_text = "поле ИМЯ должно быть заполнено, и не должно превышать 35 знаков" + self.alert.check_alert_presence(expected_alert_text, timeout=7000) + self.alert.check_alert_absence(expected_alert_text, timeout=7000) + + # ========== Тест 2: Обязательное поле имя не должно превышать 35 знаков ========== + # Создаем тестовые данные для заполнения поля + test_data_2 = EditRackData( + name="_123456789_123456789_123456789_12345" + ) + + rack_edit.fill_rack_data(test_data_2) + rack_edit.click_done_button() + + # Проверяем уведомление об ошибочном обновлении + expected_alert_text = "поле ИМЯ должно быть заполнено, и не должно превышать 35 знаков" + self.alert.check_alert_presence(expected_alert_text, timeout=7000) + self.alert.check_alert_absence(expected_alert_text, timeout=7000) + + rack_edit.click_close_button() + + logger.debug("Required field name validation test completed successfully") + def test_rack_image_tab(self, browser: Page) -> None: """Тест вкладки 'Изображение' стойки.""" @@ -376,7 +424,7 @@ class TestRackEdit: rack_edit.click_done_button() # Проверяем уведомление об успешном обновлении - expected_alert_text = "Элемент успешно обновлён" + expected_alert_text = "Успешно обновлено" self.alert.check_alert_presence(expected_alert_text, timeout=7000) self.alert.check_alert_absence(expected_alert_text, timeout=7000) @@ -466,7 +514,7 @@ class TestRackEdit: rack_edit.click_done_button() # Проверяем уведомление об успешном обновлении - expected_alert_text = "Элемент успешно обновлён" + expected_alert_text = "Успешно обновлено" self.alert.check_alert_presence(expected_alert_text, timeout=7000) self.alert.check_alert_absence(expected_alert_text, timeout=7000)