Private
Public Access
0
0
Files
manual_slop/tests/test_markdown_helper_bullets.py
T

54 lines
2.2 KiB
Python

from unittest.mock import patch, MagicMock
from src.markdown_helper import MarkdownRenderer
def test_bullet_list_renders_each_item_with_imgui_bullet():
chunk = "- one\n- two\n- three\n"
with patch("src.markdown_helper.imgui") as mock_imgui, patch("src.markdown_helper.imgui_md") as mock_md:
mock_imgui.bullet = MagicMock()
mock_imgui.same_line = MagicMock()
mock_imgui.spacing = MagicMock()
mock_imgui.indent = MagicMock()
mock_imgui.unindent = MagicMock()
mock_md.render = MagicMock()
MarkdownRenderer()._render_md_no_bullet_overlap(chunk)
assert mock_imgui.bullet.call_count >= 3
assert mock_imgui.same_line.call_count >= 3
assert mock_md.render.call_count >= 3
def test_bullet_list_with_blank_lines_uses_spacing():
chunk = "- one\n\n- two\n"
with patch("src.markdown_helper.imgui") as mock_imgui, patch("src.markdown_helper.imgui_md") as mock_md:
mock_imgui.bullet = MagicMock()
mock_imgui.same_line = MagicMock()
mock_imgui.spacing = MagicMock()
mock_imgui.indent = MagicMock()
mock_imgui.unindent = MagicMock()
mock_md.render = MagicMock()
MarkdownRenderer()._render_md_no_bullet_overlap(chunk)
assert mock_imgui.spacing.call_count >= 1
def test_non_bullet_markdown_routes_to_imgui_md():
chunk = "# Header\n\nSome prose."
with patch("src.markdown_helper.imgui") as mock_imgui, patch("src.markdown_helper.imgui_md") as mock_md:
mock_imgui.bullet = MagicMock()
mock_imgui.same_line = MagicMock()
mock_imgui.spacing = MagicMock()
mock_imgui.indent = MagicMock()
mock_imgui.unindent = MagicMock()
mock_md.render = MagicMock()
MarkdownRenderer()._render_md_no_bullet_overlap(chunk)
assert not mock_imgui.bullet.called
assert mock_md.render.call_count == 1
def test_mixed_bullets_and_prose_splits_correctly():
chunk = "Prose before.\n\n- b1\n- b2\n\nProse after."
with patch("src.markdown_helper.imgui") as mock_imgui, patch("src.markdown_helper.imgui_md") as mock_md:
mock_imgui.bullet = MagicMock()
mock_imgui.same_line = MagicMock()
mock_imgui.spacing = MagicMock()
mock_imgui.indent = MagicMock()
mock_imgui.unindent = MagicMock()
mock_md.render = MagicMock()
MarkdownRenderer()._render_md_no_bullet_overlap(chunk)
assert mock_imgui.bullet.call_count >= 2
assert mock_md.render.call_count >= 2