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  }