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