package docgov_test import ( "context" "testing" "time" "chat-agent-system/internal/docgov" ) func TestListWorkflowDocumentsIncludesActiveLease(t *testing.T) { engine := docgov.NewGovernanceEngine(nil) ctx := context.Background() const docID = "doc_project_docs_lease" if _, err := engine.CreateOrGetDocument( ctx, docID, 143, "intake", "用户初始需求收集表", "V0.1", "", 9, "编制人", 2, "审核人", 3, "批准人", ); err != nil { t.Fatal(err) } if _, err := engine.AcquireLease(ctx, docgov.LeaseAcquireRequest{ DocID: docID, HolderType: docgov.LeaseHolderSquad, HolderID: "run-visible", TTL: time.Minute, }); err != nil { t.Fatal(err) } docs, err := engine.ListWorkflowDocumentsByProject(ctx, 143) if err != nil { t.Fatal(err) } if len(docs) != 1 { t.Fatalf("documents=%d", len(docs)) } if docs[0].LeaseHolderType != docgov.LeaseHolderSquad || docs[0].LeaseHolderID != "run-visible" { t.Fatalf("lease not projected: %+v", docs[0]) } if docs[0].LeaseExpiresAt == nil || docs[0].LeaseHeartbeatAt == nil { t.Fatalf("lease timestamps missing: %+v", docs[0]) } }