1package cmd 2 3import ( 4 "fmt" 5 "os" 6 "path/filepath" 7 "testing" 8) 9 10func TestGoldenInitCmd(t *testing.T) { 11 12 wd, _ := os.Getwd() 13 project := &Project{ 14 AbsolutePath: fmt.Sprintf("%s/testproject", wd), 15 PkgName: "github.com/spf13/testproject", 16 Legal: getLicense(), 17 Copyright: copyrightLine(), 18 Viper: true, 19 AppName: "testproject", 20 } 21 22 err := project.Create() 23 if err != nil { 24 t.Fatal(err) 25 } 26 27 defer func() { 28 if _, err := os.Stat(project.AbsolutePath); err == nil { 29 os.RemoveAll(project.AbsolutePath) 30 } 31 }() 32 33 expectedFiles := []string{"LICENSE", "main.go", "cmd/root.go"} 34 for _, f := range expectedFiles { 35 generatedFile := fmt.Sprintf("%s/%s", project.AbsolutePath, f) 36 goldenFile := fmt.Sprintf("testdata/%s.golden", filepath.Base(f)) 37 err := compareFiles(generatedFile, goldenFile) 38 if err != nil { 39 t.Fatal(err) 40 } 41 } 42} 43