diff --git a/apps/api/tests/test_telegram_button_consistency.py b/apps/api/tests/test_telegram_button_consistency.py index 0112addb..8d790875 100644 --- a/apps/api/tests/test_telegram_button_consistency.py +++ b/apps/api/tests/test_telegram_button_consistency.py @@ -112,7 +112,13 @@ class TestSendApprovalCardToGroupKeyboard: ) def test_group_card_detail_button_correct_format(self): - """群組卡片 detail 按鈕使用 2-part info 格式""" + """群組卡片 detail 按鈕:接受 inline 2-part 或 _build_inline_keyboard 通用建構器 + + 2026-04-26 by Claude Opus 4.7 — 對齊 bb12647e 後的群組卡片升級 + - bb12647e: 群組卡片改用 _build_inline_keyboard(與 DM 相同六鍵佈局) + - 不再 inline 寫 f"detail:{incident_id}",但 _build_inline_keyboard 內仍會產生 + - 所以接受兩種設計:直接 inline 或透過通用建構器 + """ source = _read_gateway() match = re.search( r"async def _send_approval_card_to_group.*?(?=\n # ====)", @@ -121,8 +127,10 @@ class TestSendApprovalCardToGroupKeyboard: ) assert match, "找不到 _send_approval_card_to_group 函式" fn_body = match.group(0) - assert 'f"detail:{incident_id}"' in fn_body, ( - "群組卡片 detail 按鈕必須使用 2-part info 格式" + has_inline_detail = 'f"detail:{incident_id}"' in fn_body + has_keyboard_builder = "_build_inline_keyboard" in fn_body + assert has_inline_detail or has_keyboard_builder, ( + "群組卡片必須有 detail 按鈕:inline 2-part 格式 或透過 _build_inline_keyboard 通用建構器" ) def test_group_card_no_nonce_buttons(self):