From e2a35d230b0db1e93b4756c8454493ff2fc73ff1 Mon Sep 17 00:00:00 2001 From: wuhuizuo Date: Fri, 14 May 2021 14:17:39 +0000 Subject: [PATCH] test(pkg/action): add unit tests and fix `Init` - add unit test for Configuration#Init method. - fix Configuration#Init for unknow helm driver. Signed-off-by: wuhuizuo --- pkg/action/action.go | 2 +- pkg/action/action_test.go | 74 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/pkg/action/action.go b/pkg/action/action.go index d92c9e4d7..cd79e2980 100644 --- a/pkg/action/action.go +++ b/pkg/action/action.go @@ -408,7 +408,7 @@ func (c *Configuration) Init(getter genericclioptions.RESTClientGetter, namespac store = storage.Init(d) default: // Not sure what to do here. - errors.Errorf("Unknown driver in HELM_DRIVER: %s", helmDriver) + return errors.Errorf("Unknown driver in HELM_DRIVER: %s", helmDriver) } c.RESTClientGetter = getter diff --git a/pkg/action/action_test.go b/pkg/action/action_test.go index fedf260fb..4eb98f8e8 100644 --- a/pkg/action/action_test.go +++ b/pkg/action/action_test.go @@ -35,6 +35,7 @@ import ( "helm.sh/helm/v3/pkg/storage" "helm.sh/helm/v3/pkg/storage/driver" "helm.sh/helm/v3/pkg/time" + "k8s.io/cli-runtime/pkg/genericclioptions" ) var verbose = flag.Bool("test.log", false, "enable test logging") @@ -319,3 +320,76 @@ func TestGetVersionSet(t *testing.T) { t.Error("Non-existent version is reported found.") } } + +func TestConfiguration_Init(t *testing.T) { + type args struct { + getter genericclioptions.RESTClientGetter + namespace string + helmDriver string + log DebugLog + } + tests := []struct { + name string + configuration *Configuration + args args + wantErr bool + }{ + { + "default helm driver", + actionConfigFixture(t), + args{nil, "", "", nil}, + false, + }, + { + "`secret` helm driver", + actionConfigFixture(t), + args{nil, "", "secret", nil}, + false, + }, + { + "`secrets` helm driver", + actionConfigFixture(t), + args{nil, "", "secrets", nil}, + false, + }, + { + "`configmap` helm driver", + actionConfigFixture(t), + args{nil, "", "configmap", nil}, + false, + }, + { + "`configmaps` helm driver", + actionConfigFixture(t), + args{nil, "", "configmaps", nil}, + false, + }, + { + "`memory` helm driver", + actionConfigFixture(t), + args{nil, "", "memory", nil}, + false, + }, + { + "`sql` helm driver without env var", + actionConfigFixture(t), + args{nil, "", "sql", nil}, + true, + }, + { + "unknow helm driver", + actionConfigFixture(t), + args{nil, "", "unknown", nil}, + true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := tt.configuration + if err := c.Init(tt.args.getter, tt.args.namespace, tt.args.helmDriver, tt.args.log); (err != nil) != tt.wantErr { + t.Errorf("Configuration.Init() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +}