role = "tier3-worker" docs = ["conductor/workflow.md"] prompt = """ Create tests/test_mma_dashboard_streams.py — failing tests for Task 1.1 of comprehensive_gui_ux track. CONTEXT: _render_mma_dashboard in @gui_2.py currently has a single input_text_multiline for "Strategy (Tier 1)" (around line 2729). Task 1.1 replaces it with four collapsible sections using imgui.collapsing_header(), one per tier. TESTS TO WRITE (all should FAIL against current code — they test the NEW behavior): 1. test_all_four_tier_headers_rendered: - Create a mock App with mma_streams = {"Tier 1": "strat", "Tier 2 (Tech Lead)": "lead", "Tier 3 (Worker): T-001": "work", "Tier 4 (QA)": "qa"} - Patch imgui.collapsing_header to record calls, patch imgui.begin_child to return True, patch imgui.end_child, patch imgui.input_text_multiline - Call app._render_mma_dashboard() - Assert collapsing_header was called with a string containing "Tier 1" AND "Tier 2" AND "Tier 3" AND "Tier 4" 2. test_tier3_aggregates_multiple_worker_streams: - mma_streams = {"Tier 3 (Worker): T-001": "output1", "Tier 3 (Worker): T-002": "output2"} - Patch imgui.collapsing_header to return True, patch begin_child/end_child/text - Call _render_mma_dashboard() - Assert imgui.text was called with content containing "T-001" and "T-002" (sub-headers shown) 3. test_old_single_strategy_box_removed: - With any mma_streams, call _render_mma_dashboard() - Assert imgui.input_text_multiline was NOT called with "##mma_strategy" as first arg - (The old box should be gone, replaced by collapsing_header sections) IMPLEMENTATION DETAILS: - Import: import pytest, unittest.mock (patch, MagicMock, call) - The App class needs minimal init to avoid full GUI startup. Use a MagicMock for the app instance and manually attach method: app = MagicMock(spec=App) app.mma_streams = {...} app.mma_tier_usage = {} app.tracks = [] app.active_track = None app.active_tickets = [] app.mma_status = "idle" app.active_tier = None app.mma_step_mode = False app._pending_mma_spawn = None app._pending_mma_approval = None app._pending_ask_dialog = False # Then call the unbound method: from gui_2 import App App._render_mma_dashboard(app) - Patch target: 'gui_2.imgui' module-level - Use 1-space indentation throughout. - All 3 tests should FAIL against the current code (which still has the old single text box). """