@@ -36,7 +36,7 @@ func (mock *mockRunner) Execute(cmd string, args []string, env map[string]string
36
36
}
37
37
38
38
func MockExecer (logger * zap.SugaredLogger , kubeContext string ) * execer {
39
- execer := New ("helm" , false , logger , kubeContext , & mockRunner {})
39
+ execer := New ("helm" , HelmExecOptions {} , logger , kubeContext , & mockRunner {})
40
40
return execer
41
41
}
42
42
@@ -85,12 +85,23 @@ func Test_SetHelmBinary(t *testing.T) {
85
85
86
86
func Test_SetEnableLiveOutput (t * testing.T ) {
87
87
helm := MockExecer (NewLogger (os .Stdout , "info" ), "dev" )
88
- if helm .enableLiveOutput {
89
- t .Error ("helmexec.enableLiveOutput should not be enabled by default" )
88
+ if helm .options . EnableLiveOutput {
89
+ t .Error ("helmexec.options.EnableLiveOutput should not be enabled by default" )
90
90
}
91
91
helm .SetEnableLiveOutput (true )
92
- if ! helm .enableLiveOutput {
93
- t .Errorf ("helmexec.SetEnableLiveOutput() - actual = %t expect = true" , helm .enableLiveOutput )
92
+ if ! helm .options .EnableLiveOutput {
93
+ t .Errorf ("helmexec.SetEnableLiveOutput() - actual = %t expect = true" , helm .options .EnableLiveOutput )
94
+ }
95
+ }
96
+
97
+ func Test_SetDisableForceUpdate (t * testing.T ) {
98
+ helm := MockExecer (NewLogger (os .Stdout , "info" ), "dev" )
99
+ if ! helm .options .DisableForceUpdate {
100
+ t .Error ("helmexec.options.ForceUpdate should be enabled by default" )
101
+ }
102
+ helm .SetDisableForceUpdate (false )
103
+ if ! helm .options .DisableForceUpdate {
104
+ t .Errorf ("helmexec.SetDisableForceUpdate() - actual = %t expect = false" , helm .options .DisableForceUpdate )
94
105
}
95
106
}
96
107
@@ -117,6 +128,30 @@ exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --force-
117
128
}
118
129
}
119
130
131
+ func Test_AddRepo_Helm_3_3_2_NoForceUpdate (t * testing.T ) {
132
+ var buffer bytes.Buffer
133
+ logger := NewLogger (& buffer , "debug" )
134
+ helm := & execer {
135
+ helmBinary : "helm" ,
136
+ options : HelmExecOptions {DisableForceUpdate : true },
137
+ version : semver .MustParse ("3.3.2" ),
138
+ logger : logger ,
139
+ kubeContext : "dev" ,
140
+ runner : & mockRunner {},
141
+ }
142
+ err := helm .AddRepo ("myRepo" , "https://repo.example.com/" , "" , "cert.pem" , "key.pem" , "" , "" , "" , "" , "" )
143
+ expected := `Adding repo myRepo https://repo.example.com/
144
+ exec: helm --kube-context dev repo add myRepo https://repo.example.com/ --force-update --cert-file cert.pem --key-file key.pem
145
+ `
146
+ if err != nil {
147
+ t .Errorf ("unexpected error: %v" , err )
148
+ }
149
+
150
+ if buffer .String () != expected {
151
+ t .Errorf ("helmexec.AddRepo()\n actual = %v\n expect = %v" , buffer .String (), expected )
152
+ }
153
+ }
154
+
120
155
func Test_AddRepo (t * testing.T ) {
121
156
var buffer bytes.Buffer
122
157
logger := NewLogger (& buffer , "debug" )
@@ -322,7 +357,7 @@ func Test_BuildDeps(t *testing.T) {
322
357
var buffer bytes.Buffer
323
358
logger := NewLogger (& buffer , "debug" )
324
359
helm3Runner := mockRunner {output : []byte ("v3.2.4+ge29ce2a" )}
325
- helm := New ("helm" , false , logger , "dev" , & helm3Runner )
360
+ helm := New ("helm" , HelmExecOptions {} , logger , "dev" , & helm3Runner )
326
361
err := helm .BuildDeps ("foo" , "./chart/foo" , []string {"--skip-refresh" }... )
327
362
expected := `Building dependency release=foo, chart=./chart/foo
328
363
exec: helm --kube-context dev dependency build ./chart/foo --skip-refresh
@@ -364,7 +399,7 @@ v3.2.4+ge29ce2a
364
399
365
400
buffer .Reset ()
366
401
helm2Runner := mockRunner {output : []byte ("Client: v2.16.1+ge13bc94" )}
367
- helm = New ("helm" , false , logger , "dev" , & helm2Runner )
402
+ helm = New ("helm" , HelmExecOptions {} , logger , "dev" , & helm2Runner )
368
403
err = helm .BuildDeps ("foo" , "./chart/foo" )
369
404
expected = `Building dependency release=foo, chart=./chart/foo
370
405
exec: helm --kube-context dev dependency build ./chart/foo
@@ -870,13 +905,13 @@ exec: helm --kube-context dev template release https://example_user:example_pass
870
905
871
906
func Test_IsHelm3 (t * testing.T ) {
872
907
helm2Runner := mockRunner {output : []byte ("Client: v2.16.0+ge13bc94\n " )}
873
- helm := New ("helm" , false , NewLogger (os .Stdout , "info" ), "dev" , & helm2Runner )
908
+ helm := New ("helm" , HelmExecOptions {} , NewLogger (os .Stdout , "info" ), "dev" , & helm2Runner )
874
909
if helm .IsHelm3 () {
875
910
t .Error ("helmexec.IsHelm3() - Detected Helm 3 with Helm 2 version" )
876
911
}
877
912
878
913
helm3Runner := mockRunner {output : []byte ("v3.0.0+ge29ce2a\n " )}
879
- helm = New ("helm" , false , NewLogger (os .Stdout , "info" ), "dev" , & helm3Runner )
914
+ helm = New ("helm" , HelmExecOptions {} , NewLogger (os .Stdout , "info" ), "dev" , & helm3Runner )
880
915
if ! helm .IsHelm3 () {
881
916
t .Error ("helmexec.IsHelm3() - Failed to detect Helm 3" )
882
917
}
@@ -907,14 +942,14 @@ func Test_GetPluginVersion(t *testing.T) {
907
942
908
943
func Test_GetVersion (t * testing.T ) {
909
944
helm2Runner := mockRunner {output : []byte ("Client: v2.16.1+ge13bc94\n " )}
910
- helm := New ("helm" , false , NewLogger (os .Stdout , "info" ), "dev" , & helm2Runner )
945
+ helm := New ("helm" , HelmExecOptions {} , NewLogger (os .Stdout , "info" ), "dev" , & helm2Runner )
911
946
ver := helm .GetVersion ()
912
947
if ver .Major != 2 || ver .Minor != 16 || ver .Patch != 1 {
913
948
t .Errorf ("helmexec.GetVersion - did not detect correct Helm2 version; it was: %+v" , ver )
914
949
}
915
950
916
951
helm3Runner := mockRunner {output : []byte ("v3.2.4+ge29ce2a\n " )}
917
- helm = New ("helm" , false , NewLogger (os .Stdout , "info" ), "dev" , & helm3Runner )
952
+ helm = New ("helm" , HelmExecOptions {} , NewLogger (os .Stdout , "info" ), "dev" , & helm3Runner )
918
953
ver = helm .GetVersion ()
919
954
if ver .Major != 3 || ver .Minor != 2 || ver .Patch != 4 {
920
955
t .Errorf ("helmexec.GetVersion - did not detect correct Helm3 version; it was: %+v" , ver )
@@ -923,7 +958,7 @@ func Test_GetVersion(t *testing.T) {
923
958
924
959
func Test_IsVersionAtLeast (t * testing.T ) {
925
960
helm2Runner := mockRunner {output : []byte ("Client: v2.16.1+ge13bc94\n " )}
926
- helm := New ("helm" , false , NewLogger (os .Stdout , "info" ), "dev" , & helm2Runner )
961
+ helm := New ("helm" , HelmExecOptions {} , NewLogger (os .Stdout , "info" ), "dev" , & helm2Runner )
927
962
if ! helm .IsVersionAtLeast ("2.1.0" ) {
928
963
t .Error ("helmexec.IsVersionAtLeast - 2.16.1 not atleast 2.1" )
929
964
}
0 commit comments