66 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			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)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |