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  }