func TestInitCmd_dryRun(t *testing.T) { // This is purely defensive in this case. home, err := ioutil.TempDir("", "helm_home") if err != nil { t.Fatal(err) } dbg := flagDebug flagDebug = true defer func() { os.Remove(home) flagDebug = dbg }() var buf bytes.Buffer fake := testclient.Fake{} cmd := &initCmd{ out: &buf, home: helmpath.Home(home), kubeClient: fake.Extensions(), clientOnly: true, dryRun: true, } if err := cmd.run(); err != nil { t.Fatal(err) } if len(fake.Actions()) != 0 { t.Error("expected no server calls") } var y map[string]interface{} if err := yaml.Unmarshal(buf.Bytes(), &y); err != nil { t.Errorf("Expected parseable YAML, got %q\n\t%s", buf.String(), err) } }
func TestInitCmd_clientOnly(t *testing.T) { home, err := ioutil.TempDir("", "helm_home") if err != nil { t.Fatal(err) } defer os.Remove(home) var buf bytes.Buffer fake := testclient.Fake{} cmd := &initCmd{out: &buf, home: helmpath.Home(home), kubeClient: fake.Extensions(), clientOnly: true} if err := cmd.run(); err != nil { t.Errorf("expected error: %v", err) } if len(fake.Actions()) != 0 { t.Error("expected client call") } expected := "Not installing tiller due to 'client-only' flag having been set" if !strings.Contains(buf.String(), expected) { t.Errorf("expected %q, got %q", expected, buf.String()) } }
func TestInitCmd(t *testing.T) { home, err := ioutil.TempDir("", "helm_home") if err != nil { t.Fatal(err) } defer os.Remove(home) var buf bytes.Buffer fake := testclient.Fake{} cmd := &initCmd{out: &buf, home: helmpath.Home(home), kubeClient: fake.Extensions()} if err := cmd.run(); err != nil { t.Errorf("expected error: %v", err) } actions := fake.Actions() if action, ok := actions[0].(testclient.CreateAction); !ok || action.GetResource() != "deployments" { t.Errorf("unexpected action: %v, expected create deployment", actions[0]) } expected := "Tiller (the helm server side component) has been installed into your Kubernetes Cluster." if !strings.Contains(buf.String(), expected) { t.Errorf("expected %q, got %q", expected, buf.String()) } }