fix: 领取任务后立即刷新列表 (#107)

This commit is contained in:
chengma
2026-08-10 17:11:59 +08:00
parent 8931162106
commit 39686d7b3b
8 changed files with 125 additions and 15 deletions
+32
View File
@@ -133,6 +133,7 @@ class TaskDispatcherTest(unittest.TestCase):
live_ready=False,
purchase_mode="dry_run",
device_checker=lambda _serial: None,
task_saved=lambda _task_id: None,
):
purchase_factory = None
if purchase_ready:
@@ -159,6 +160,7 @@ class TaskDispatcherTest(unittest.TestCase):
),
purchase_mode=purchase_mode,
device_connection_checker=device_checker,
task_saved=task_saved,
)
def test_capability_only_includes_purchase_when_adapter_is_ready(self):
@@ -249,6 +251,36 @@ class TaskDispatcherTest(unittest.TestCase):
)
self.assertIn(("purchase", "stopped"), self.calls)
def test_new_task_notifies_after_save_and_before_execution(self):
task = AdminTask(
"COL-SAVED",
TaskType.COLLECT,
1,
0,
{
"goods_url": "https://example.test/COL-SAVED",
"goods_id": "COL-GOODS",
},
)
self.gateway.enqueue_task(task, self.client.client_id)
notifications = []
def record_saved(task_id):
detail = self.repository.get_task(task_id)
notifications.append(
(task_id, detail.status if detail else None, list(self.calls))
)
outcome = self._dispatcher(
purchase_ready=False, task_saved=record_saved
).execute_one()
self.assertEqual(outcome.kind, "succeeded")
self.assertEqual(
notifications,
[("COL-SAVED", TaskStatus.CLAIMED, [])],
)
def test_purchase_is_not_claimed_when_runtime_is_not_ready(self):
self.gateway.enqueue_task(purchase_task(), self.client.client_id)