MCPcopy Create free account
hub / github.com/compozy/agh / TestValidateImmutableTaskFields

Function TestValidateImmutableTaskFields

internal/task/validate_test.go:48–135  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

46}
47
48func TestValidateImmutableTaskFields(t *testing.T) {
49 t.Parallel()
50
51 current := validTask()
52 tests := []struct {
53 name string
54 mutate func(*Task)
55 wantField string
56 expectError bool
57 }{
58 {
59 name: "created by immutable",
60 mutate: func(next *Task) {
61 next.CreatedBy.Ref = "human-2"
62 },
63 wantField: TaskFieldCreatedBy,
64 expectError: true,
65 },
66 {
67 name: "origin immutable",
68 mutate: func(next *Task) {
69 next.Origin.Ref = "http:api"
70 },
71 wantField: TaskFieldOrigin,
72 expectError: true,
73 },
74 {
75 name: "scope immutable",
76 mutate: func(next *Task) {
77 next.Scope = ScopeWorkspace
78 next.WorkspaceID = "ws-1"
79 },
80 wantField: TaskFieldScope,
81 expectError: true,
82 },
83 {
84 name: "workspace id immutable",
85 mutate: func(next *Task) {
86 next.WorkspaceID = "ws-2"
87 },
88 wantField: TaskFieldWorkspaceID,
89 expectError: true,
90 },
91 {
92 name: "parent task id immutable",
93 mutate: func(next *Task) {
94 next.ParentTaskID = "task-2"
95 },
96 wantField: TaskFieldParentTaskID,
97 expectError: true,
98 },
99 {
100 name: "mutable fields allowed",
101 mutate: func(next *Task) {
102 next.Title = "Updated"
103 next.Description = "changed"
104 next.NetworkChannel = "network:alpha"
105 next.Owner = &Ownership{Kind: OwnerKindPool, Ref: "triage"}

Callers

nothing calls this directly

Calls 6

validTaskFunction · 0.85
ContainsMethod · 0.80
RunMethod · 0.65
IsMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected