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