github.com/rjeczalik/buffalo@v0.11.1/generators/helpers_test.go (about)

     1  package generators
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestAppendRoute(t *testing.T) {
    13  	r := require.New(t)
    14  
    15  	tmpDir := os.TempDir()
    16  	packagePath := filepath.Join(tmpDir, "src", "sample")
    17  	err := os.MkdirAll(packagePath, 0777)
    18  	r.NoError(err)
    19  
    20  	err = os.Chdir(packagePath)
    21  	r.NoError(err)
    22  
    23  	const shortAppFileExample = `package actions
    24  
    25  import (
    26  	"os"
    27  
    28  	"github.com/gobuffalo/buffalo"
    29  	"github.com/gobuffalo/buffalo/examples/json-crud/models"
    30  	"github.com/gobuffalo/buffalo/middleware"
    31  	"github.com/markbates/going/defaults"
    32  )
    33  
    34  var ENV = defaults.String(os.Getenv("GO_ENV"), "development")
    35  var app *buffalo.App
    36  func App() *buffalo.App {
    37  	if app == nil {
    38  		app = buffalo.New(buffalo.Options{
    39  			Env: ENV,
    40  		})
    41  
    42  		app.Use(middleware.SetContentType("application/json"))
    43  		app.Use(middleware.PopTransaction(models.DB))
    44  
    45  		app.Use(findUserMW)
    46  		app.GET("/users", UsersList)
    47  	}
    48  
    49  	return app
    50  }`
    51  
    52  	err = os.MkdirAll("actions", 0777)
    53  	r.NoError(err)
    54  	err = ioutil.WriteFile(filepath.Join(packagePath, "actions", "app.go"), []byte(shortAppFileExample), 0755)
    55  	r.NoError(err)
    56  
    57  	err = AddRoute("GET", "/new/route", "UserCoolHandler")
    58  	r.NoError(err)
    59  
    60  	contentAfter, err := ioutil.ReadFile(filepath.Join(packagePath, "actions", "app.go"))
    61  	r.NoError(err)
    62  	r.Equal(`package actions
    63  
    64  import (
    65  	"os"
    66  
    67  	"github.com/gobuffalo/buffalo"
    68  	"github.com/gobuffalo/buffalo/examples/json-crud/models"
    69  	"github.com/gobuffalo/buffalo/middleware"
    70  	"github.com/markbates/going/defaults"
    71  )
    72  
    73  var ENV = defaults.String(os.Getenv("GO_ENV"), "development")
    74  var app *buffalo.App
    75  func App() *buffalo.App {
    76  	if app == nil {
    77  		app = buffalo.New(buffalo.Options{
    78  			Env: ENV,
    79  		})
    80  
    81  		app.Use(middleware.SetContentType("application/json"))
    82  		app.Use(middleware.PopTransaction(models.DB))
    83  
    84  		app.Use(findUserMW)
    85  		app.GET("/users", UsersList)
    86  		app.GET("/new/route", UserCoolHandler)
    87  	}
    88  
    89  	return app
    90  }`, string(contentAfter))
    91  
    92  }