github.com/grafana/tanka@v0.26.1-0.20240506093700-c22cfc35c21a/cmd/tk/workflow_test.go (about) 1 package main 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/grafana/tanka/pkg/tanka" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestValidateAutoApprove(t *testing.T) { 12 for _, tc := range []struct { 13 name string 14 autoApproveDeprecated bool 15 autoApproveString string 16 expected tanka.AutoApproveSetting 17 expectErr error 18 }{ 19 { 20 name: "default", 21 expected: tanka.AutoApproveNever, 22 }, 23 { 24 name: "deprecated bool set", 25 autoApproveDeprecated: true, 26 expected: tanka.AutoApproveAlways, 27 }, 28 { 29 name: "both values set", 30 autoApproveDeprecated: true, 31 autoApproveString: "never", 32 expectErr: errors.New("--dangerous-auto-approve and --auto-approve are mutually exclusive"), 33 }, 34 { 35 name: "always", 36 autoApproveString: "always", 37 expected: tanka.AutoApproveAlways, 38 }, 39 { 40 name: "never", 41 autoApproveString: "never", 42 expected: tanka.AutoApproveNever, 43 }, 44 { 45 name: "if-no-changes", 46 autoApproveString: "if-no-changes", 47 expected: tanka.AutoApproveNoChanges, 48 }, 49 { 50 name: "bad value", 51 autoApproveString: "blabla", 52 expectErr: errors.New("invalid value for --auto-approve: blabla"), 53 }, 54 } { 55 t.Run(tc.name, func(t *testing.T) { 56 result, err := validateAutoApprove(tc.autoApproveDeprecated, tc.autoApproveString) 57 if tc.expectErr != nil { 58 assert.EqualError(t, err, tc.expectErr.Error()) 59 } else { 60 assert.NoError(t, err) 61 assert.Equal(t, tc.expected, result) 62 } 63 }) 64 } 65 }