重启后仍能跳过协同出方案,未成交可同一句带原因;海陆有价卡改为直接生成报价单。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -269,6 +269,54 @@ class ContinueTicketTests(unittest.TestCase):
|
||||
self.assertEqual(decision.intent, "continue_thread")
|
||||
_ = dispatch_inbound
|
||||
|
||||
def test_skip_collab_after_restart_from_ledger(self) -> None:
|
||||
"""
|
||||
测服 WO202609230031:进程重启后主账把空运已报价收成 wait_adopt,
|
||||
点「不需要协同,直接生成报价单」不能再静默丢掉。
|
||||
"""
|
||||
ledger = MemoryLedger()
|
||||
live = AirTextInquiryFlow(ledger)
|
||||
sink: list[str] = []
|
||||
|
||||
def reply(text: str, extra=None) -> None:
|
||||
sink.append(text)
|
||||
_ = extra
|
||||
|
||||
created = ledger.create_ticket(
|
||||
sender_id="u-skip-restart", business_line="AIR", facts=COMPLETE_AIR
|
||||
)
|
||||
wo = created["work_order_no"]
|
||||
ledger.upsert_quote(
|
||||
work_order_no=wo,
|
||||
quote={
|
||||
"total": "USD 1,280",
|
||||
"eta": "3-5 天",
|
||||
"valid_until": "2026-09-20",
|
||||
"source_label": "TMS 标准报价",
|
||||
},
|
||||
to_status="已报价",
|
||||
)
|
||||
view = ledger.get_for_agent(work_order_no=wo, sender_id="u-skip-restart")
|
||||
self.assertEqual(view.get("wait_phase"), "wait_adopt")
|
||||
|
||||
restarted = AirTextInquiryFlow(ledger)
|
||||
phase = restarted.on_button(
|
||||
sender_id="u-skip-restart",
|
||||
action=copy.BTN_SKIP_COLLAB,
|
||||
reply=reply,
|
||||
card_meta={
|
||||
"event_key": f"skip_collab:{wo}",
|
||||
"task_id": f"price-{wo}-deadbeef",
|
||||
"response_code": "rc-skip-restart",
|
||||
},
|
||||
)
|
||||
self.assertEqual(phase, "wait_adopt")
|
||||
joined = "\n".join(sink)
|
||||
self.assertIn("已跳过内部协同", joined)
|
||||
self.assertIn(f"{wo}报价方案", joined)
|
||||
self.assertEqual(restarted.session_of("u-skip-restart").phase, "wait_adopt")
|
||||
self.assertNotIn(copy.BTN_SKIP_COLLAB, restarted.session_of("u-skip-restart").allowed)
|
||||
|
||||
def test_adopt_excel_after_restart_stays_on_card_ticket(self) -> None:
|
||||
"""点 0040 方案卡不能落到刚续办的 0037:进程无书签时按卡上工单号从主账收回。"""
|
||||
ledger = MemoryLedger()
|
||||
|
||||
Reference in New Issue
Block a user