Commit 1d4d5ec8 authored by Michelle Noorali's avatar Michelle Noorali

ref(helm): refactor helm unit tests

... so we don't rely on external services
in unit tests :)
parent 4b5eef90
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
"testing"
)
func TestEnsureHome(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
fmt.Fprintln(w, "OK")
}))
defaultRepositoryURL = ts.URL
home := createTmpHome()
helmHome = home
if err := ensureHome(); err != nil {
......
......@@ -58,6 +58,7 @@ func runRepoAdd(cmd *cobra.Command, args []string) error {
if err := addRepository(name, url); err != nil {
return err
}
fmt.Println(name + " has been added to your repositories")
return nil
}
......@@ -110,8 +111,8 @@ func index(dir, url string) error {
}
func addRepository(name, url string) error {
if err := repo.DownloadIndexFile(name, url, cacheDirectory(name, "-index.yaml")); err != nil {
return errors.New("Looks like " + url + " is not a valid chart repository or cannot be reached\n")
if err := repo.DownloadIndexFile(name, url, cacheDirectory(name+"-index.yaml")); err != nil {
return errors.New("Looks like " + url + " is not a valid chart repository or cannot be reached: " + err.Error())
}
return insertRepoLine(name, url)
......
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/http/httptest"
"os"
"path/filepath"
"testing"
"github.com/kubernetes/helm/pkg/repo"
......@@ -12,13 +18,21 @@ var (
)
func TestRepoAdd(t *testing.T) {
home := createTmpHome()
helmHome = home
if err := ensureHome(); err != nil {
t.Errorf("%s", err)
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
fmt.Fprintln(w, "OK")
}))
helmHome, _ = ioutil.TempDir("", "helm_home")
defer os.Remove(helmHome)
os.Mkdir(filepath.Join(helmHome, repositoryDir), 0755)
os.Mkdir(cacheDirectory(), 0755)
if err := ioutil.WriteFile(repositoriesFile(), []byte("example-repo: http://exampleurl.com"), 0666); err != nil {
t.Errorf("%#v", err)
}
if err := insertRepoLine(testName, testURL); err != nil {
if err := addRepository(testName, ts.URL); err != nil {
t.Errorf("%s", err)
}
......@@ -31,7 +45,7 @@ func TestRepoAdd(t *testing.T) {
t.Errorf("%s was not successfully inserted into %s", testName, repositoriesFile())
}
if err := insertRepoLine(testName, testURL); err == nil {
if err := insertRepoLine(testName, ts.URL); err == nil {
t.Errorf("Duplicate repository name was added")
}
......
......@@ -28,7 +28,7 @@ type ChartRef struct {
}
// DownloadIndexFile uses
func DownloadIndexFile(repoName, url, indexFileName string) error {
func DownloadIndexFile(repoName, url, indexFilePath string) error {
var indexURL string
indexURL = strings.TrimSuffix(url, "/") + "/index.yaml"
......@@ -49,11 +49,7 @@ func DownloadIndexFile(repoName, url, indexFileName string) error {
return err
}
if err := ioutil.WriteFile(indexFileName, b, 0644); err != nil {
return err
}
return nil
return ioutil.WriteFile(indexFilePath, b, 0644)
}
// UnmarshalYAML unmarshals the index file
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment