func TestUpdateKubernetesVersion(t *testing.T) { tempDir := tests.MakeTempDir() defer os.RemoveAll(tempDir) s, _ := tests.NewSSHServer() port, err := s.Start() if err != nil { t.Fatalf("Error starting ssh server: %s", err) } h := tests.NewMockHost() d := &tests.MockDriver{ Port: port, BaseDriver: drivers.BaseDriver{ IPAddress: "127.0.0.1", SSHKeyPath: "", }, } handler := &K8sVersionHandlerCorrect{} server := httptest.NewServer(handler) kubernetesConfig := KubernetesConfig{ KubernetesVersion: server.URL, } if err := UpdateCluster(h, d, kubernetesConfig); err != nil { t.Fatalf("Error updating cluster: %s", err) } transferred := s.Transfers.Bytes() //test that localkube is transferred properly contents := []byte(testLocalkubeBin) if !bytes.Contains(transferred, contents) { t.Fatalf("File not copied. Expected transfers to contain: %s. It was: %s", contents, transferred) } }
func TestStartClusterError(t *testing.T) { h := tests.NewMockHost() h.Error = "error" err := StartCluster(h) if err == nil { t.Fatal("Error not thrown starting cluster.") } }
func TestUpdateCustomAddons(t *testing.T) { tempDir := tests.MakeTempDir() os.Mkdir(constants.MakeMiniPath("addons", "subdir"), 0777) defer os.RemoveAll(tempDir) s, _ := tests.NewSSHServer() port, err := s.Start() if err != nil { t.Fatalf("Error starting ssh server: %s", err) } h := tests.NewMockHost() d := &tests.MockDriver{ Port: port, BaseDriver: drivers.BaseDriver{ IPAddress: "127.0.0.1", SSHKeyPath: "", }, } //write a file into ~/.minikube/addons path := filepath.Join(constants.MakeMiniPath("addons"), "dir-addon.yaml") testContent1 := []byte("CUSTOM ADDON TEST STRING#1, In Addons Dir") err = ioutil.WriteFile(path, testContent1, 0644) if err != nil { t.Fatalf("Error writing custom addon: %s", err) } path = filepath.Join(constants.MakeMiniPath("addons", "subdir"), "subdir-addon.yaml") testContent2 := []byte("CUSTOM ADDON TEST STRING#2, In Addons SubDir") err = ioutil.WriteFile(path, testContent2, 0644) if err != nil { t.Fatalf("Error writing custom addon: %s", err) } //run update kubernetesConfig := KubernetesConfig{ KubernetesVersion: constants.DefaultKubernetesVersion, } if err := UpdateCluster(h, d, kubernetesConfig); err != nil { t.Fatalf("Error updating cluster: %s", err) } transferred := s.Transfers.Bytes() //test that custom addons are transferred properly if !bytes.Contains(transferred, testContent1) { t.Fatalf("Custom addon not copied. Expected transfers to contain custom addon with content: %s. It was: %s", testContent1, transferred) } if !bytes.Contains(transferred, testContent2) { t.Fatalf("Custom addon not copied. Expected transfers to contain custom addon with content: %s. It was: %s", testContent2, transferred) } }
func TestStartClusterError(t *testing.T) { h := tests.NewMockHost() h.Error = "error" ip, _ := h.Driver.GetIP() kubernetesConfig := KubernetesConfig{ NodeIP: ip, } err := StartCluster(h, kubernetesConfig) if err == nil { t.Fatal("Error not thrown starting cluster.") } }
func TestStartCluster(t *testing.T) { h := tests.NewMockHost() err := StartCluster(h) if err != nil { t.Fatalf("Error starting cluster: %s", err) } for _, cmd := range []string{stopCommand, GetStartCommand()} { if _, ok := h.Commands[cmd]; !ok { t.Fatalf("Expected command not run: %s. Commands run: %s", cmd, h.Commands) } } }
func TestStartCluster(t *testing.T) { h := tests.NewMockHost() ip, _ := h.Driver.GetIP() kubernetesConfig := KubernetesConfig{ NodeIP: ip, } err := StartCluster(h, kubernetesConfig) if err != nil { t.Fatalf("Error starting cluster: %s", err) } for _, cmd := range []string{stopCommand, GetStartCommand(kubernetesConfig)} { if _, ok := h.Commands[cmd]; !ok { t.Fatalf("Expected command not run: %s. Commands run: %v", cmd, h.Commands) } } }
func TestUpdateDefault(t *testing.T) { s, _ := tests.NewSSHServer() port, err := s.Start() if err != nil { t.Fatalf("Error starting ssh server: %s", err) } h := tests.NewMockHost() d := &tests.MockDriver{ Port: port, BaseDriver: drivers.BaseDriver{ IPAddress: "127.0.0.1", SSHKeyPath: "", }, } kubernetesConfig := KubernetesConfig{ KubernetesVersion: constants.DefaultKubernetesVersion, } if err := UpdateCluster(h, d, kubernetesConfig); err != nil { t.Fatalf("Error updating cluster: %s", err) } transferred := s.Transfers.Bytes() //test that kube-add memoryAssets are transferred properly for _, a := range memoryAssets { contents, _ := Asset(a.GetAssetName()) if !bytes.Contains(transferred, contents) { t.Fatalf("File not copied. Expected transfers to contain: %s. It was: %s", contents, transferred) } } //test that localkube is transferred properly contents, _ := Asset("out/localkube") if !bytes.Contains(transferred, contents) { t.Fatalf("File not copied. Expected transfers to contain: %s. It was: %s", contents, transferred) } }