github.com/citysir/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 }