fix(feishu): keep fenced markdown tables out of card tables
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
# Check optional Feishu dependencies before running tests
|
||||
try:
|
||||
from nanobot.channels import feishu
|
||||
FEISHU_AVAILABLE = getattr(feishu, "FEISHU_AVAILABLE", False)
|
||||
from nanobot.channels.feishu.runtime import FEISHU_AVAILABLE
|
||||
except ImportError:
|
||||
FEISHU_AVAILABLE = False
|
||||
|
||||
@@ -66,3 +65,23 @@ def test_split_headings_keeps_markdown_body_and_code_blocks_intact() -> None:
|
||||
assert elements[1]["tag"] == "markdown"
|
||||
assert "Body with **bold** text." in elements[1]["content"]
|
||||
assert "```python\nprint('hi')\n```" in elements[1]["content"]
|
||||
|
||||
|
||||
def test_build_card_elements_keeps_fenced_markdown_tables_intact() -> None:
|
||||
channel = FeishuChannel.__new__(FeishuChannel)
|
||||
text = "Before\n\n```\n| a | b |\n| - | - |\n| 1 | 2 |\n```\n\nAfter"
|
||||
|
||||
elements = channel._build_card_elements(text)
|
||||
|
||||
assert all(el.get("tag") != "table" for el in elements)
|
||||
joined = "\n".join(el["content"] for el in elements if el.get("tag") == "markdown")
|
||||
assert "```\n| a | b |\n| - | - |\n| 1 | 2 |\n```" in joined
|
||||
|
||||
|
||||
def test_build_card_elements_still_parses_unfenced_markdown_tables() -> None:
|
||||
channel = FeishuChannel.__new__(FeishuChannel)
|
||||
text = "Before\n\n| a | b |\n| - | - |\n| 1 | 2 |\n\nAfter"
|
||||
|
||||
elements = channel._build_card_elements(text)
|
||||
|
||||
assert any(el.get("tag") == "table" for el in elements)
|
||||
|
||||
Reference in New Issue
Block a user