Files
Agent-System/internal/bizdev/document_duty_resolve_test.go
T
weichenandCursor 6a68e04f1f feat(docduty): resolve project reviewer onto controlled docs
Stop inventing reviewer_id=2. Use project document_duty as the authority, heal missing or non-member placeholders, and keep write paths rejected for reviewer and outsiders.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-13 21:57:44 +00:00

41 lines
1.1 KiB
Go

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{}
}