@@ -17,9 +17,11 @@ package action
17
17
18
18
import (
19
19
"flag"
20
+ "fmt"
20
21
"io"
21
22
"testing"
22
23
24
+ "github.com/stretchr/testify/assert"
23
25
fakeclientset "k8s.io/client-go/kubernetes/fake"
24
26
25
27
"helm.sh/helm/v3/pkg/chart"
@@ -273,6 +275,74 @@ func namedReleaseStub(name string, status release.Status) *release.Release {
273
275
}
274
276
}
275
277
278
+ func TestConfiguration_Init (t * testing.T ) {
279
+ tests := []struct {
280
+ name string
281
+ helmDriver string
282
+ expectedDriverType interface {}
283
+ expectErr bool
284
+ errMsg string
285
+ }{
286
+ {
287
+ name : "Test secret driver" ,
288
+ helmDriver : "secret" ,
289
+ expectedDriverType : & driver.Secrets {},
290
+ },
291
+ {
292
+ name : "Test secrets driver" ,
293
+ helmDriver : "secrets" ,
294
+ expectedDriverType : & driver.Secrets {},
295
+ },
296
+ {
297
+ name : "Test empty driver" ,
298
+ helmDriver : "" ,
299
+ expectedDriverType : & driver.Secrets {},
300
+ },
301
+ {
302
+ name : "Test configmap driver" ,
303
+ helmDriver : "configmap" ,
304
+ expectedDriverType : & driver.ConfigMaps {},
305
+ },
306
+ {
307
+ name : "Test configmaps driver" ,
308
+ helmDriver : "configmaps" ,
309
+ expectedDriverType : & driver.ConfigMaps {},
310
+ },
311
+ {
312
+ name : "Test memory driver" ,
313
+ helmDriver : "memory" ,
314
+ expectedDriverType : & driver.Memory {},
315
+ },
316
+ {
317
+ name : "Test sql driver" ,
318
+ helmDriver : "sql" ,
319
+ expectErr : true ,
320
+ errMsg : "unable to instantiate SQL driver" ,
321
+ },
322
+ {
323
+ name : "Test unknown driver" ,
324
+ helmDriver : "someDriver" ,
325
+ expectErr : true ,
326
+ errMsg : fmt .Sprintf ("unknown driver %q" , "someDriver" ),
327
+ },
328
+ }
329
+
330
+ for _ , tt := range tests {
331
+ t .Run (tt .name , func (t * testing.T ) {
332
+ cfg := & Configuration {}
333
+
334
+ actualErr := cfg .Init (nil , "default" , tt .helmDriver , nil )
335
+ if tt .expectErr {
336
+ assert .Error (t , actualErr )
337
+ assert .Contains (t , actualErr .Error (), tt .errMsg )
338
+ } else {
339
+ assert .NoError (t , actualErr )
340
+ assert .IsType (t , tt .expectedDriverType , cfg .Releases .Driver )
341
+ }
342
+ })
343
+ }
344
+ }
345
+
276
346
func TestGetVersionSet (t * testing.T ) {
277
347
client := fakeclientset .NewSimpleClientset ()
278
348
0 commit comments