import pytest
import src.gui_2 as gui_2

def test_render_thinking_trace_helper_exists():
    assert hasattr(gui_2, 'render_thinking_trace'), (
        "gui_2 module must have render_thinking_trace function"
    )

def test_discussion_entry_with_thinking_segments():
    entry = {
        "role": "AI",
        "content": "Here's my response",
        "thinking_segments": [
            {"content": "Let me analyze this step by step...", "marker": "thinking"},
            {"content": "I should consider edge cases...", "marker": "thought"},
        ],
        "ts": "2026-03-13T10:00:00",
        "collapsed": False,
    }
    assert "thinking_segments" in entry
    assert len(entry["thinking_segments"]) == 2


def test_discussion_entry_without_thinking():
    entry = {
        "role": "User",
        "content": "Hello",
        "ts": "2026-03-13T10:00:00",
        "collapsed": False,
    }
    assert "thinking_segments" not in entry


def test_thinking_segment_model_compatibility():
    from src.models import ThinkingSegment

    segment = ThinkingSegment(content="test", marker="thinking")
    assert segment.content == "test"
    assert segment.marker == "thinking"
    d = segment.to_dict()
    assert d["content"] == "test"
    assert d["marker"] == "thinking"


if __name__ == "__main__":
    test_render_thinking_trace_helper_exists()
    test_discussion_entry_with_thinking_segments()
    test_discussion_entry_without_thinking()
    test_thinking_segment_model_compatibility()
    print("All GUI thinking trace tests passed!")
