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