@@ -105,6 +105,63 @@ def test_from_name_custom_component_dir(self, templates_dir, override_app_settin
105105 assert isinstance (comp .template , Template )
106106 assert comp .render ({}) == "<button>Click me</button>"
107107
108+ def test_id_is_consistent (self , templates_dir ):
109+ button = TestComponent (
110+ name = "button" , content = "<button>Click me</button>"
111+ ).create (templates_dir )
112+
113+ comp1 = Component .from_name (button .name )
114+ comp2 = Component .from_name (button .name )
115+
116+ assert comp1 .id == comp2 .id
117+
118+ def test_id_content_changes (self , templates_dir ):
119+ button = TestComponent (
120+ name = "button" , content = "<button>Click me</button>"
121+ ).create (templates_dir )
122+
123+ comp1 = Component .from_name (button .name )
124+
125+ button .file .write_text ("<button>Don't click me</button>" )
126+ comp2 = Component .from_name (button .name )
127+
128+ assert comp1 .id != comp2 .id
129+
130+ def test_id_whitespace_changes (self , templates_dir ):
131+ button = TestComponent (
132+ name = "button" , content = "<button>Click me</button>"
133+ ).create (templates_dir )
134+
135+ comp1 = Component .from_name (button .name )
136+
137+ button .file .write_text ("<button>\n Click me\n </button>" )
138+ comp2 = Component .from_name (button .name )
139+
140+ assert comp1 .id == comp2 .id
141+
142+ def test_id_name_changes (self , templates_dir ):
143+ button1 = TestComponent (
144+ name = "button1" , content = "<button>Click me</button>"
145+ ).create (templates_dir )
146+ button2 = TestComponent (
147+ name = "button2" , content = "<button>Click me</button>"
148+ ).create (templates_dir )
149+
150+ comp1 = Component .from_name (button1 .name )
151+ comp2 = Component .from_name (button2 .name )
152+
153+ assert comp1 .id != comp2 .id
154+
155+ def test_id_formatting (self , templates_dir ):
156+ button = TestComponent (
157+ name = "button" , content = "<button>Click me</button>"
158+ ).create (templates_dir )
159+
160+ comp = Component .from_name (button .name )
161+
162+ assert len (comp .id ) == 7
163+ assert all (c in "0123456789abcdef" for c in comp .id )
164+
108165
109166class TestComponentRegistryProject :
110167 def test_discover_components (self , templates_dir ):
0 commit comments