MCPcopy Create free account
hub / github.com/astercloud/aster / TestCanExecute

Function TestCanExecute

pkg/executionplan/types_test.go:205–237  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

203}
204
205func TestCanExecute(t *testing.T) {
206 tests := []struct {
207 name string
208 status Status
209 userApproved bool
210 requireApproval bool
211 autoApprove bool
212 expected bool
213 }{
214 {"draft, not approved, requires approval", StatusDraft, false, true, false, false},
215 {"draft, approved", StatusDraft, true, true, false, true},
216 {"draft, auto approve", StatusDraft, false, true, true, true},
217 {"draft, no approval required", StatusDraft, false, false, false, true},
218 {"executing", StatusExecuting, true, true, false, false},
219 {"completed", StatusCompleted, true, true, false, false},
220 {"failed", StatusFailed, true, true, false, false},
221 {"canceled", StatusCancelled, true, true, false, false},
222 {"approved status, approved", StatusApproved, true, true, false, true},
223 }
224
225 for _, tt := range tests {
226 t.Run(tt.name, func(t *testing.T) {
227 plan := NewExecutionPlan("Test")
228 plan.Status = tt.status
229 plan.UserApproved = tt.userApproved
230 plan.Options.RequireApproval = tt.requireApproval
231 plan.Options.AutoApprove = tt.autoApprove
232 if plan.CanExecute() != tt.expected {
233 t.Errorf("expected %v, got %v", tt.expected, plan.CanExecute())
234 }
235 })
236 }
237}
238
239func TestApprove(t *testing.T) {
240 plan := NewExecutionPlan("Test plan")

Callers

nothing calls this directly

Calls 3

CanExecuteMethod · 0.95
NewExecutionPlanFunction · 0.85
RunMethod · 0.45

Tested by

no test coverage detected