Defer locked-period supplements to a pending ledger, route duty-holder notifications, persist stage-scoped comments, and prefer Approver for reopen.
41 lines
1.8 KiB
Go
41 lines
1.8 KiB
Go
package docgov_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"chat-agent-system/internal/docgov"
|
|
)
|
|
|
|
func TestAddCommentStageMatrix(t *testing.T) {
|
|
eng := docgov.NewGovernanceEngine(nil)
|
|
doc, err := eng.CreateOrGetDocument(context.Background(), "doc_cmt_matrix", 1, "feasibility_reg", "可行性", "V0.5", "", 1, "A", 2, "R", 3, "P")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, err := eng.AddComment(context.Background(), doc.DocID, 1, "A", docgov.RoleAuthor, "s1", docgov.CommentSuggestion, "作者意见"); err != nil {
|
|
t.Fatalf("author drafting: %v", err)
|
|
}
|
|
if _, err := eng.AddComment(context.Background(), doc.DocID, 9, "V", docgov.UserRole("viewer"), "s1", docgov.CommentSuggestion, "观者"); err == nil {
|
|
t.Fatal("viewer should be forbidden in drafting")
|
|
}
|
|
if _, err := eng.SubmitForReview(context.Background(), doc.DocID, 1, docgov.RoleAuthor, "A"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, err := eng.AddComment(context.Background(), doc.DocID, 3, "P", docgov.RoleApprover, "s1", docgov.CommentSuggestion, "批准人"); err == nil {
|
|
t.Fatal("approver should be forbidden in reviewing")
|
|
}
|
|
if _, err := eng.AddComment(context.Background(), doc.DocID, 1, "A", docgov.RoleAuthor, "s1", docgov.CommentSuggestion, "回应"); err != nil {
|
|
t.Fatalf("author reviewing: %v", err)
|
|
}
|
|
if _, err := eng.ReviewApprove(context.Background(), doc.DocID, 2, docgov.RoleReviewer, "R", "ok"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, err := eng.AddComment(context.Background(), doc.DocID, 1, "A", docgov.RoleAuthor, "s1", docgov.CommentSuggestion, "作者"); err == nil {
|
|
t.Fatal("author should be forbidden in approving")
|
|
}
|
|
if _, err := eng.AddComment(context.Background(), doc.DocID, 3, "P", docgov.RoleApprover, "s1", docgov.CommentSuggestion, "批准意见"); err != nil {
|
|
t.Fatalf("approver approving: %v", err)
|
|
}
|
|
}
|