feat(huya): 协作台账支持待补资料一键建单与表单暂存

This commit is contained in:
yml2213
2026-10-17 14:21:36 +08:00
parent cad06ae789
commit fcc2fbdc09
8 changed files with 401 additions and 50 deletions
+53
View File
@@ -1390,6 +1390,59 @@ class TestCollabCreateStrict(TestCollabBase):
assert result["created"] == 1
assert self.db.query(HuyaExternalOrder).one().ck_status == "unverified"
def test_draft_needs_only_order_no_and_shop(self):
"""先建单后补资料:只填订单号 + 店铺,状态直接进「待补资料」。"""
order = collab.create_order(
self.db,
self.user,
order_no="DRAFT-1",
shop="佳佳",
draft=True,
require_verified=True, # 草稿模式必须压过严格模式,不跑探针
)
assert order.status == collab.STATUS_INCOMPLETE
assert order.shop == "佳佳"
assert order.cookie == ""
assert order.gift_name == ""
assert order.home_images == []
assert order.ck_status == "unverified"
assert self._row_count() == 1
detail = self._audits(order)[-1].detail
assert '"draft"' in detail and "true" in detail
assert collab.summary(self.db)["by_status"]["incomplete"] == 1
def test_incomplete_cannot_advance_until_customer_info_complete(self):
order = collab.create_order(
self.db, self.user, order_no="DRAFT-2", shop="佳佳", draft=True
)
with pytest.raises(collab.CollabError) as excinfo:
collab.set_status(self.db, self.user, order, collab.STATUS_PENDING)
assert excinfo.value.code == "incomplete_precondition"
assert "外部 CK" in excinfo.value.detail
assert "礼包名" in excinfo.value.detail
assert "主页截图" in excinfo.value.detail
assert order.status == collab.STATUS_INCOMPLETE
def test_incomplete_advances_after_info_complete(self):
order = collab.create_order(
self.db,
self.user,
order_no="DRAFT-3",
shop="佳佳",
gift_name="不朽伊人大礼包",
home_images=[self.HOME_IMAGE],
draft=True,
)
collab.set_ck(self.db, self.user, order, fake_ck("1199647239697"))
collab.set_status(self.db, self.user, order, collab.STATUS_PENDING)
assert order.status == collab.STATUS_PENDING
assert order.void_reason == ""
class TestCollabKeywordSearch(TestCollabBase):
"""列表搜索:一个输入框打穿订单号 / 店铺 / 绑定账号·角色 / 平台区服 / 虎牙号 / 礼包 / 备注。"""