diff --git a/pkg/minikube/config/config.go b/pkg/minikube/config/config.go index 2388c5e8fa..0495765b46 100644 --- a/pkg/minikube/config/config.go +++ b/pkg/minikube/config/config.go @@ -53,7 +53,11 @@ func Get(name string) (string, error) { if err != nil { return "", err } - if val, ok := m[name]; ok { + return get(name, m) +} + +func get(name string, config MinikubeConfig) (string, error) { + if val, ok := config[name]; ok { return fmt.Sprintf("%v", val), nil } else { return "", errors.New("specified key could not be found in config") diff --git a/pkg/minikube/config/config_test.go b/pkg/minikube/config/config_test.go index d353654eb4..7dd2007cd6 100644 --- a/pkg/minikube/config/config_test.go +++ b/pkg/minikube/config/config_test.go @@ -67,3 +67,35 @@ func TestReadConfig(t *testing.T) { } } } + +func TestGet(t *testing.T) { + cfg := `{ + "key": "val" + }` + + config, err := decode(bytes.NewBufferString(cfg)) + if err != nil { + t.Fatalf("Error decoding config : %v", err) + } + + var testcases = []struct { + key string + val string + err bool + }{ + {"key", "val", false}, + {"badkey", "", true}, + } + + for _, tt := range testcases { + val, err := get(tt.key, config) + if (err != nil) && !tt.err { + t.Errorf("Error fetching key: %s. Err: %v", tt.key, err) + continue + } + if val != tt.val { + t.Errorf("Expected %s, got %s", tt.val, val) + continue + } + } +}