get.porter.sh/porter@v1.3.0/pkg/generator/generator_test.go (about) 1 package generator 2 3 import ( 4 "fmt" 5 "os" 6 "testing" 7 8 "get.porter.sh/porter/pkg/secrets" 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func Test_genEmptySet(t *testing.T) { 14 expected := secrets.SourceMap{ 15 Name: "emptyset", 16 Source: secrets.Source{Hint: "TODO"}, 17 } 18 19 got, err := genEmptySet("emptyset", surveyParameters) 20 require.NoError(t, err) 21 require.Equal(t, expected, got) 22 } 23 24 func Test_genSurvey_unsupported(t *testing.T) { 25 got, err := genSurvey("myturtleset", SurveyType("turtles")) 26 require.EqualError(t, err, "unsupported survey type: turtles") 27 require.Equal(t, secrets.SourceMap{}, got) 28 } 29 30 func TestCheckUserHomeDir(t *testing.T) { 31 home, err := os.UserHomeDir() 32 assert.NoError(t, err) 33 tests := map[string]struct { 34 val string 35 expectedValue string 36 }{ 37 "home directory": {val: "~/.kube/config", expectedValue: home + "/.kube/config"}, 38 "non-home directory": {val: "tmp", expectedValue: "tmp"}, 39 } 40 for name, test := range tests { 41 t.Run(name, func(t *testing.T) { 42 newVal, err := checkUserHomeDir(test.val) 43 assert.NoError(t, err) 44 assert.Equal(t, test.expectedValue, newVal) 45 }) 46 } 47 } 48 49 func TestBuildSurveySelectRequiredTrue(t *testing.T) { 50 survey := buildSurveySelect("name", surveyCredentials, withRequired(true)) 51 assert.NotContains(t, survey.Options, questionSkip) 52 } 53 54 func TestBuildSurveySelectRequiredFalse(t *testing.T) { 55 survey := buildSurveySelect("name", surveyCredentials, withRequired(false)) 56 assert.Contains(t, survey.Options, questionSkip) 57 } 58 59 func TestBuildSurveySelectEmptyDescription(t *testing.T) { 60 name := "name_value" 61 description := "" 62 survey := buildSurveySelect(name, surveyCredentials, withDescription(description)) 63 assert.Equal(t, survey.Message, fmt.Sprintf(surveryFormatString, surveyPrefix, surveyCredentials, name, formatDescriptionForSurvey(description))) 64 } 65 66 func TestBuildSurveySelectValidDescription(t *testing.T) { 67 name := "name_value" 68 description := "here are details on how to fill out the survey" 69 survey := buildSurveySelect(name, surveyCredentials, withDescription(description)) 70 assert.Equal(t, survey.Message, fmt.Sprintf(surveryFormatString, surveyPrefix, surveyCredentials, name, formatDescriptionForSurvey(description))) 71 }