github.com/rotblauer/buffalo@v0.7.1-0.20170112214545-7aa55ef80dd3/buffalo/cmd/generate/action_test.go (about) 1 package generate 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/spf13/cobra" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func init() { 14 runningTests = true 15 } 16 17 func TestGenerateActionArgsComplete(t *testing.T) { 18 dir := os.TempDir() 19 packagePath := filepath.Join(dir, "src", "sample") 20 os.MkdirAll(packagePath, 0755) 21 os.Chdir(packagePath) 22 23 r := require.New(t) 24 25 cmd := cobra.Command{} 26 27 e := ActionCmd.RunE(&cmd, []string{}) 28 r.NotNil(e) 29 30 e = ActionCmd.RunE(&cmd, []string{"users"}) 31 r.NotNil(e) 32 33 os.Mkdir("actions", 0755) 34 35 e = ActionCmd.RunE(&cmd, []string{"users", "show"}) 36 r.Nil(e) 37 } 38 39 func TestGenerateActionActionsFolderExists(t *testing.T) { 40 dir := os.TempDir() 41 packagePath := filepath.Join(dir, "src", "sample") 42 os.MkdirAll(packagePath, 0755) 43 os.Chdir(packagePath) 44 45 os.RemoveAll("actions") 46 os.RemoveAll("templates") 47 48 r := require.New(t) 49 cmd := cobra.Command{} 50 51 e := ActionCmd.RunE(&cmd, []string{"users", "show", "edit"}) 52 r.NotNil(e) 53 54 os.Mkdir("actions", 0755) 55 56 e = ActionCmd.RunE(&cmd, []string{"users", "show", "edit"}) 57 r.Nil(e) 58 59 data, _ := ioutil.ReadFile("actions/users.go") 60 r.Contains(string(data), "func UsersShow(c buffalo.Context) error {") 61 r.Contains(string(data), "func UsersEdit(c buffalo.Context) error {") 62 r.Contains(string(data), `r.HTML("users/edit.html")`) 63 r.Contains(string(data), `c.Render(200, r.HTML("users/show.html"))`) 64 65 data, _ = ioutil.ReadFile("templates/users/show.html") 66 r.Contains(string(data), "<h1>Users#Show</h1>") 67 } 68 69 func TestGenerateActionActionsFileExists(t *testing.T) { 70 dir := os.TempDir() 71 packagePath := filepath.Join(dir, "src", "sample") 72 os.MkdirAll(packagePath, 0755) 73 os.Chdir(packagePath) 74 75 os.Mkdir("actions", 0755) 76 r := require.New(t) 77 cmd := cobra.Command{} 78 usersContent := `package actions 79 import "log" 80 81 func UsersShow(c buffalo.Context) error { 82 log.Println("Something Here!") 83 return c.Render(200, r.String("OK")) 84 } 85 ` 86 ioutil.WriteFile("actions/users.go", []byte(usersContent), 0755) 87 88 e := ActionCmd.RunE(&cmd, []string{"users", "show"}) 89 r.Nil(e) 90 91 data, _ := ioutil.ReadFile("actions/users.go") 92 r.Contains(string(data), "log.Println(") 93 r.Contains(string(data), "func UsersShow") 94 95 }