from session_bot.render import build_channel_text
def test_build_channel_text_includes_phrase_and_status() -> None:
config = {
"template_text": "{{hidden_link}}\nheader\n\n{{actors}}",
"hidden_link_url": "https://example.com/image.png",
"actors": [
{
"key": "astat",
"display_name": "ASTAT",
"display_html": "ASTAT",
"link": "https://t.me/example",
"pronouns": "he/him",
"meta_html": " he/him ",
"emoji": "π",
"default_status": "backstage",
"phrases": {"open": "ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΠΉΠΊΠΈ"},
}
],
"status_labels": {"open": "ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»Ρ", "backstage": "Π² Π·Π°ΠΊΡΠ»ΠΈΡΡΠ΅"},
}
state = {"actors": {"astat": {"status": "open", "phrase": "Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΠ³ΡΠ΅"}}}
text = build_channel_text(config, state)
assert '' in text
assert 'ASTAT' in text
assert "ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»Ρ" in text
assert "Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΠ³ΡΠ΅" in text
def test_build_channel_text_supports_per_actor_placeholders() -> None:
config = {
"template_text": "HEAD\n\n{{actor:astat}}\n\nMID\n\n{{actor:mari}}\n\nTAIL",
"actors": [
{
"key": "astat",
"display_name": "ASTAT",
"display_html": "ASTAT",
"link": "https://t.me/astat",
"pronouns": "he/him",
"meta_html": " he/him ",
"emoji": "π",
"default_status": "backstage",
"phrases": {"backstage": "Π² Π·Π°ΠΊΡΠ»ΠΈΡΡΠ΅."},
},
{
"key": "mari",
"display_name": "MARI",
"display_html": "MARI",
"link": "https://t.me/mari",
"pronouns": "she/her",
"meta_html": " she/her ",
"emoji": "π",
"default_status": "open",
"phrases": {"open": "ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»Ρ."},
},
],
}
state = {"actors": {}}
text = build_channel_text(config, state)
assert text.count("ASTAT") == 1
assert text.count("MARI") == 1