package bizdev import ( "context" "testing" "chat-agent-system/internal/docduty" ) func TestResolveTaskDocumentDuties_UsesCreatorNotHardcodedReviewer(t *testing.T) { req := TaskRunRequest{ UserID: 170, ProjectID: 6145, AuthorName: "编制人A", } got := resolveTaskDocumentDuties(context.Background(), nil, req) if got.Author.UserID != 170 { t.Fatalf("author want 170 got %+v", got.Author) } if got.Reviewer.UserID == 2 || got.Approver.UserID == 3 { t.Fatalf("must not invent hardcoded 2/3: %+v", got) } if got.Reviewer.UserID != 0 { t.Fatalf("no project members → reviewer empty, got %+v", got.Reviewer) } } func TestResolveTaskDocumentDuties_IgnoresNonMemberRequestReviewer(t *testing.T) { req := TaskRunRequest{ UserID: 170, ReviewerID: 2, ReviewerName: "审核负责人", } got := resolveTaskDocumentDuties(context.Background(), nil, req) if got.Reviewer.UserID != 0 { t.Fatalf("request reviewer 2 is not a member: %+v", got.Reviewer) } } func TestBindingFromDocRoundTrip(t *testing.T) { // compile-time guard that helper stays aligned with Resolve slots _ = docduty.Binding{} }