41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
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])
|
|
}
|
|
}
|