from unittest.mock import patch
from src.markdown_table import parse_tables, render_table, TableBlock

def test_render_table_invokes_begin_table(app_instance):
 with patch("src.markdown_table.imgui") as mock_imgui:
  mock_imgui.TableFlags_ = type("T", (), {"borders": 1, "row_bg": 2, "resizable": 4})()
  mock_imgui.begin_table.return_value = True
  block = TableBlock(headers=["A", "B"], rows=[["1", "2"]], span=(0, 3))
  render_table(block)
  assert mock_imgui.begin_table.called
  args, _ = mock_imgui.begin_table.call_args
  assert args[0] == "md_table"
  assert args[1] == 2
  assert mock_imgui.end_table.called

def test_render_table_skips_when_no_columns():
 with patch("src.markdown_table.imgui") as mock_imgui:
  block = TableBlock(headers=[], rows=[], span=(0, 1))
  render_table(block)
  assert not mock_imgui.begin_table.called
