github.com/jaylevin/jenkins-library@v1.230.4/pkg/config/flags_test.go (about)

     1  package config
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/spf13/cobra"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestAvailableFlagValues(t *testing.T) {
    11  	var f StepFilters
    12  
    13  	var test0 string
    14  	var test1 string
    15  	var test2 []string
    16  	var test3 bool
    17  
    18  	var c = &cobra.Command{
    19  		Use:   "test",
    20  		Short: "..",
    21  	}
    22  
    23  	c.Flags().StringVar(&test0, "test0", "val0", "Test 0")
    24  	c.Flags().StringVar(&test1, "test1", "", "Test 1")
    25  	c.Flags().StringSliceVar(&test2, "test2", []string{}, "Test 2")
    26  	c.Flags().BoolVar(&test3, "test3", false, "Test 3")
    27  
    28  	c.Flags().Set("test1", "val1")
    29  	c.Flags().Set("test2", "val3_1")
    30  	c.Flags().Set("test3", "true")
    31  
    32  	v := AvailableFlagValues(c, &f)
    33  
    34  	if v["test0"] != nil {
    35  		t.Errorf("expected: 'test0' to be empty but was %v", v["test0"])
    36  	}
    37  
    38  	assert.Equal(t, "val1", v["test1"])
    39  	assert.Equal(t, []string{"val3_1"}, v["test2"])
    40  	assert.Equal(t, true, v["test3"])
    41  
    42  }
    43  
    44  func TestMarkFlagsWithValue(t *testing.T) {
    45  	var test0 string
    46  	var test1 string
    47  	var test2 string
    48  	var c = &cobra.Command{
    49  		Use:   "test",
    50  		Short: "..",
    51  	}
    52  	c.Flags().StringVar(&test0, "test0", "val0", "Test 0")
    53  	c.Flags().StringVar(&test1, "test1", "", "Test 1")
    54  	c.Flags().StringVar(&test2, "test2", "", "Test 2")
    55  
    56  	s := StepConfig{
    57  		Config: map[string]interface{}{
    58  			"test2": "val2",
    59  		},
    60  	}
    61  
    62  	MarkFlagsWithValue(c, s)
    63  
    64  	assert.Equal(t, true, c.Flags().Changed("test0"), "default not considered")
    65  	assert.Equal(t, false, c.Flags().Changed("test1"), "no value: considered as set")
    66  	assert.Equal(t, true, c.Flags().Changed("test2"), "config not considered")
    67  }