From eb237f95ec05eb3054795b28cb8a4ae9fe4b01ba Mon Sep 17 00:00:00 2001 From: Disco DeDisco Date: Sat, 24 Jan 2026 14:23:43 -0500 Subject: [PATCH] new FT method & error element helper in functional_tests.test_list_item_validation; not yet passing, awaiting JS implementation --- .../test_list_item_validation.py | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/functional_tests/test_list_item_validation.py b/src/functional_tests/test_list_item_validation.py index 55656f7..9935fa2 100644 --- a/src/functional_tests/test_list_item_validation.py +++ b/src/functional_tests/test_list_item_validation.py @@ -4,6 +4,11 @@ from selenium.webdriver.common.keys import Keys from .base import FunctionalTest class ItemValidationTest(FunctionalTest): + # Helper functions + def get_error_element(self): + return self.browser.find_element(By.CSS_SELECTOR, ".invalid-feedback") + + # Test methods def test_cannot_add_empty_list_items(self): self.browser.get(self.live_server_url) self.get_item_input_box().send_keys(Keys.ENTER) @@ -48,7 +53,24 @@ class ItemValidationTest(FunctionalTest): self.wait_for( lambda: self.assertEqual( - self.browser.find_element(By.CSS_SELECTOR, ".invalid-feedback").text, + self.get_error_element().text, "You've already logged this to your list", ) ) + + def test_error_messages_are_cleared_on_input(self): + self.browser.get(self.live_server_url) + self.get_item_input_box().send_keys("Banter too thicc") + self.get_item_input_box().send_keys(Keys.ENTER) + self.wait_for_row_in_list_table("1. Banter too thicc") + self.get_item_input_box().send_keys("Banter too thicc") + self.get_item_input_box().send_keys(Keys.ENTER) + self.wait_for( + lambda: self.assertTrue(self.get_error_element().is_displayed()) + ) + + self.get_item_input_box().send_keys("a") + + self.wait_for( + lambda: self.assertFalse(self.get_error_element().is_displayed()) + )