Merge pull request #68 from yxxhero/add_unittest_for_context
add unittest for context.go
This commit is contained in:
		
						commit
						e4f57718e1
					
				|  | @ -0,0 +1,104 @@ | ||||||
|  | package helmexec | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"os" | ||||||
|  | 	"path/filepath" | ||||||
|  | 	"testing" | ||||||
|  | 
 | ||||||
|  | 	"github.com/Masterminds/semver/v3" | ||||||
|  | 	"github.com/stretchr/testify/require" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // TestGetTillerlessArgs tests the GetTillerlessArgs function
 | ||||||
|  | func TestGetTillerlessArgs(t *testing.T) { | ||||||
|  | 	helmBinary := "helm" | ||||||
|  | 
 | ||||||
|  | 	tests := []struct { | ||||||
|  | 		tillerless       bool | ||||||
|  | 		helmMajorVersion string | ||||||
|  | 		tillerNamespace  string | ||||||
|  | 		expected         []string | ||||||
|  | 	}{ | ||||||
|  | 		{ | ||||||
|  | 			tillerless:       true, | ||||||
|  | 			helmMajorVersion: "2.0.0", | ||||||
|  | 			expected:         []string{"tiller", "run", "--", helmBinary}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			tillerless:       true, | ||||||
|  | 			helmMajorVersion: "2.0.0", | ||||||
|  | 			tillerNamespace:  "test-namespace", | ||||||
|  | 			expected:         []string{"tiller", "run", "test-namespace", "--", helmBinary}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			tillerless:       false, | ||||||
|  | 			helmMajorVersion: "2.0.0", | ||||||
|  | 			expected:         []string{}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			tillerless:       true, | ||||||
|  | 			helmMajorVersion: "3.0.0", | ||||||
|  | 			expected:         []string{}, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 	for _, test := range tests { | ||||||
|  | 		hc := &HelmContext{ | ||||||
|  | 			Tillerless:      test.tillerless, | ||||||
|  | 			TillerNamespace: test.tillerNamespace, | ||||||
|  | 		} | ||||||
|  | 		sr, _ := semver.NewVersion(test.helmMajorVersion) | ||||||
|  | 		he := &execer{ | ||||||
|  | 			helmBinary: helmBinary, | ||||||
|  | 			version:    *sr, | ||||||
|  | 		} | ||||||
|  | 		require.Equalf(t, test.expected, hc.GetTillerlessArgs(he), "expected result %s, received result %s", test.expected, hc.GetTillerlessArgs(he)) | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func pwd() string { | ||||||
|  | 	pwd, _ := os.Getwd() | ||||||
|  | 	return pwd | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // TestGetTillerlessEnv tests the getTillerlessEnv function
 | ||||||
|  | func TestGetTillerlessEnv(t *testing.T) { | ||||||
|  | 	kubeconfigEnv := "KUBECONFIG" | ||||||
|  | 
 | ||||||
|  | 	tests := []struct { | ||||||
|  | 		tillerless bool | ||||||
|  | 		kubeconfig string | ||||||
|  | 		expected   map[string]string | ||||||
|  | 	}{ | ||||||
|  | 		{ | ||||||
|  | 			tillerless: true, | ||||||
|  | 			kubeconfig: "", | ||||||
|  | 			expected:   map[string]string{"HELM_TILLER_SILENT": "true"}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			tillerless: true, | ||||||
|  | 			kubeconfig: "abc", | ||||||
|  | 			expected:   map[string]string{"HELM_TILLER_SILENT": "true", kubeconfigEnv: filepath.Join(pwd(), "abc")}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			tillerless: true, | ||||||
|  | 			kubeconfig: "/path/to/kubeconfig", | ||||||
|  | 			expected:   map[string]string{"HELM_TILLER_SILENT": "true", kubeconfigEnv: "/path/to/kubeconfig"}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			tillerless: false, | ||||||
|  | 			expected:   map[string]string{}, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 	for _, test := range tests { | ||||||
|  | 		hc := &HelmContext{ | ||||||
|  | 			Tillerless: test.tillerless, | ||||||
|  | 		} | ||||||
|  | 		os.Setenv(kubeconfigEnv, test.kubeconfig) | ||||||
|  | 		result := hc.getTillerlessEnv() | ||||||
|  | 		require.Equalf(t, test.expected, result, "expected result %s, received result %s", test.expected, result) | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | 	defer os.Unsetenv(kubeconfigEnv) | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue