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  }