fix(workbench): remove synthetic check projections
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from uuid import uuid4
|
||||
|
||||
from samples.peripheral.auth import Identity
|
||||
from samples.peripheral.config import SampleSettings
|
||||
from samples.peripheral.schemas import CreateWorkOrder, UpdateWorkOrder, WorkOrder
|
||||
from samples.peripheral.store import PostgresStore
|
||||
|
||||
|
||||
def test_create_and_update_record_flat_order_activity(monkeypatch):
|
||||
store = PostgresStore(SampleSettings())
|
||||
actor = Identity(str(uuid4()), str(uuid4()), True)
|
||||
saved = {}
|
||||
|
||||
monkeypatch.setattr(store, "_mutate", lambda who, key, command, operation: operation(None, "normal"))
|
||||
|
||||
def save(_conn, _who, document):
|
||||
saved.clear()
|
||||
saved.update(WorkOrder.model_validate(document).model_dump(mode="json"))
|
||||
return dict(saved)
|
||||
|
||||
monkeypatch.setattr(store, "_save_work_order", save)
|
||||
monkeypatch.setattr(store, "_managed_document", lambda *_args: dict(saved))
|
||||
|
||||
created = store.create_work_order(actor, CreateWorkOrder(
|
||||
request_id=uuid4(), title="阀门预约复核", summary="现场复核开度",
|
||||
location="北区阀门", assignee="北区班组",
|
||||
feedback_requirements=["回传开度照片"],
|
||||
))
|
||||
assert created["feedback_requirements"] == ["回传开度照片"]
|
||||
assert created["activity"][0]["kind"] == "created"
|
||||
assert "subtasks" not in created
|
||||
|
||||
updated = store.update_work_order(actor, created["work_order_id"], UpdateWorkOrder(
|
||||
request_id=uuid4(), expected_revision=1, status="awaiting_reply",
|
||||
progress_note="已复核开度,等待回执确认",
|
||||
))
|
||||
assert updated["status"] == "awaiting_reply"
|
||||
assert [entry["sequence"] for entry in updated["activity"]] == [1, 2]
|
||||
assert updated["activity"][1]["kind"] == "feedback"
|
||||
assert updated["activity"][1]["detail"] == "已复核开度,等待回执确认"
|
||||
assert "progress_note" not in updated
|
||||
|
||||
|
||||
def test_legacy_order_reads_flat_without_claiming_unrecorded_progress():
|
||||
legacy = {"work_order_id": str(uuid4()), "subtasks": [{"stages": [{"status": "done"}]}]}
|
||||
projected = PostgresStore._active_managed_document(legacy)
|
||||
assert "subtasks" not in projected
|
||||
assert projected["feedback_requirements"] == []
|
||||
assert projected["activity"] == []
|
||||
Reference in New Issue
Block a user