helmfile/pkg/state/state_gogetter_test.go

66 lines
1.1 KiB
Go

package state
import (
"fmt"
"io"
"os"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/helmfile/helmfile/pkg/filesystem"
"github.com/helmfile/helmfile/pkg/helmexec"
)
func TestGoGetter(t *testing.T) {
logger := helmexec.NewLogger(io.Discard, "warn")
testcases := []struct {
chart, dir string
force bool
out, err string
}{
{
chart: "raw/incubator",
dir: "",
force: false,
out: "raw/incubator",
err: "",
},
}
for i, tc := range testcases {
test := tc
t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) {
d, err := os.MkdirTemp("", "testgogetter")
if err != nil {
panic(err)
}
defer os.RemoveAll(d)
st := &HelmState{
logger: logger,
fs: filesystem.DefaultFileSystem(),
basePath: d,
}
out, err := st.goGetterChart(test.chart, test.dir, "", false)
if diff := cmp.Diff(test.out, out); diff != "" {
t.Fatalf("Unexpected out:\n%s", diff)
}
var errMsg string
if err != nil {
errMsg = err.Error()
}
if diff := cmp.Diff(test.err, errMsg); diff != "" {
t.Fatalf("Unexpected err:\n%s", diff)
}
})
}
}