@@ -129,3 +129,46 @@ def test_tabs_preserved(self):
129129 new_text , col = toggle_comment_lines (text , 0 , 0 )
130130 assert new_text == "\t -- SELECT * FROM users"
131131 assert col == 4 # 1 tab + "-- "
132+
133+ @pytest .mark .parametrize (
134+ "text, start_row, end_row, expected_text, expected_col" ,
135+ [
136+ # Toggle on: simple multi-line
137+ (
138+ "SELECT *\n FROM users" ,
139+ 0 ,
140+ 1 ,
141+ "-- SELECT *\n -- FROM users" ,
142+ 3 ,
143+ ),
144+ # Toggle off: simple multi-line
145+ (
146+ "-- SELECT *\n -- FROM users" ,
147+ 0 ,
148+ 1 ,
149+ "SELECT *\n FROM users" ,
150+ 0 ,
151+ ),
152+ # Toggle on: mixed content (first line uncommented -> comment all)
153+ (
154+ "SELECT *\n -- FROM users" ,
155+ 0 ,
156+ 1 ,
157+ "-- SELECT *\n -- -- FROM users" ,
158+ 3 ,
159+ ),
160+ # Toggle off: mixed content (first line commented -> uncomment all)
161+ (
162+ "-- SELECT *\n FROM users" ,
163+ 0 ,
164+ 1 ,
165+ "SELECT *\n FROM users" ,
166+ 0 ,
167+ ),
168+ ],
169+ )
170+ def test_toggle_scenarios_parametrized (self , text , start_row , end_row , expected_text , expected_col ):
171+ """Test various toggle scenarios mimicking selection behavior."""
172+ new_text , col = toggle_comment_lines (text , start_row , end_row )
173+ assert new_text == expected_text
174+ assert col == expected_col
0 commit comments