test(search-select): assert id lands on inner input not wrapper

This commit is contained in:
2026-06-20 19:01:30 +02:00
parent b816c68cb8
commit b229f34b8d
+17
View File
@@ -154,6 +154,23 @@ class SearchSelectComponentTest(unittest.TestCase):
html_custom = str(SearchSelect(name="t", prefetch=42)) html_custom = str(SearchSelect(name="t", prefetch=42))
self.assertIn('prefetch="42"', html_custom) self.assertIn('prefetch="42"', html_custom)
def test_field_id_placed_on_search_input(self):
html = str(SearchSelect(name="games", id="id_games"))
# id appears exactly once in the whole widget
self.assertEqual(html.count('id="id_games"'), 1)
# must NOT appear in the <search-select> wrapper's opening tag
wrapper_open_end = html.index(">", html.index("<search-select"))
self.assertNotIn('id="id_games"', html[:wrapper_open_end])
# must appear on the element that carries data-search-select-search
search_pos = html.index("data-search-select-search")
tag_start = html.rindex("<", 0, search_pos)
tag_end = html.index(">", search_pos)
self.assertIn('id="id_games"', html[tag_start:tag_end])
def test_no_id_omits_id_attribute(self):
html = str(SearchSelect(name="games"))
self.assertNotIn("id=", html)
class FilterSelectComponentTest(unittest.TestCase): class FilterSelectComponentTest(unittest.TestCase):
MODIFIERS = [("NOT_NULL", "(Any)"), ("IS_NULL", "(None)")] MODIFIERS = [("NOT_NULL", "(Any)"), ("IS_NULL", "(None)")]