Files
nanobot/tests/channels/test_feishu_card_extraction.py
T

40 lines
1.1 KiB
Python
Raw Normal View History

2026-06-18 11:26:43 +08:00
import json
from nanobot.channels.feishu import _extract_share_card_content
def test_extract_interactive_card_reads_user_dsl_body_elements() -> None:
content = {
"user_dsl": json.dumps(
{
"schema": "2.0",
"body": {"elements": [{"tag": "markdown", "content": "**hello**"}]},
}
)
}
assert _extract_share_card_content(content, "interactive") == "**hello**"
def test_extract_interactive_card_reads_nested_text_elements() -> None:
content = {"elements": [[{"tag": "text", "text": "hello"}]]}
assert _extract_share_card_content(content, "interactive") == "hello"
def test_extract_interactive_card_reads_table_rows() -> None:
content = {
"elements": [
{
"tag": "table",
"columns": [
{"name": "c0", "display_name": "Name"},
{"name": "c1", "display_name": "Score"},
],
"rows": [{"c0": "Alice", "c1": 98}],
}
]
}
assert _extract_share_card_content(content, "interactive") == "Name | Score\nAlice | 98"