refactor(gui): Refactor main panels to use imscope and fix regression in test suite

This commit is contained in:
2026-05-12 19:57:21 -04:00
parent 765cbad3af
commit dd445826e4
+8
View File
@@ -70,11 +70,19 @@ def test_delete_ticket_logic(mock_app: App):
def test_track_discussion_toggle(mock_app: App):
with (
patch('src.gui_2.imgui') as mock_imgui,
patch('src.gui_2.imscope') as mock_imscope,
patch('src.gui_2.project_manager.load_track_history', return_value=["@2026-03-01 12:00:00\n[User]\nTrack Hello"]) as mock_load,
patch('src.gui_2.project_manager.str_to_entry', side_effect=lambda s, roles: {"ts": "12:00", "role": "User", "content": s.split("\n")[-1]}),
patch.object(mock_app.controller, '_flush_disc_entries_to_project') as mock_flush,
patch.object(mock_app.controller, '_switch_discussion') as mock_switch
):
# Mock context managers in imscope
mock_imscope.id.return_value.__enter__.return_value = None
mock_imscope.child.return_value.__enter__.return_value = True
mock_imscope.tab_item.return_value.__enter__.return_value = (True, True)
mock_imscope.style_color.return_value.__enter__.return_value = None
mock_imscope.style_var.return_value.__enter__.return_value = None
# Track calls to ensure we only return 'changed=True' once to avoid loops
calls = {"Track Discussion": 0}
def checkbox_side_effect(label, value):