github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/genny/newapp/api/api_test.go (about) 1 package api 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/gobuffalo/buffalo/genny/newapp/core" 8 "github.com/gobuffalo/envy" 9 "github.com/gobuffalo/genny/v2/gentest" 10 "github.com/gobuffalo/meta" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func init() { 15 // normalize command output 16 envy.Set("GO_BIN", "go") 17 } 18 19 func Test_New(t *testing.T) { 20 r := require.New(t) 21 22 app := meta.Named("api", ".") 23 (&app).PackageRoot("api") 24 app.WithModules = false 25 app.AsAPI = true 26 app.AsWeb = false 27 28 gg, err := New(&Options{ 29 Options: &core.Options{ 30 App: app, 31 }, 32 }) 33 r.NoError(err) 34 35 run := gentest.NewRunner() 36 run.WithGroup(gg) 37 38 r.NoError(run.Run()) 39 40 res := run.Results() 41 42 cmds := []string{ 43 "go mod init api", 44 } 45 r.Len(res.Commands, len(cmds)) 46 47 for i, c := range res.Commands { 48 r.Equal(cmds[i], strings.Join(c.Args, " ")) 49 } 50 51 expected := commonExpected 52 for _, e := range expected { 53 _, err = res.Find(e) 54 r.NoError(err) 55 } 56 57 f, err := res.Find("actions/render.go") 58 r.NoError(err) 59 r.Contains(f.String(), `DefaultContentType: "application/json",`) 60 61 f, err = res.Find("actions/home.go") 62 r.NoError(err) 63 r.Contains(f.String(), `return c.Render(http.StatusOK, r.JSON(map[string]string{"message": "Welcome to Buffalo!"}))`) 64 65 f, err = res.Find("actions/app.go") 66 r.NoError(err) 67 r.Contains(f.String(), `i18n "github.com/gobuffalo/mw-i18n"`) 68 r.Contains(f.String(), `var T *i18n.Translator`) 69 r.Contains(f.String(), `func translations() buffalo.MiddlewareFunc {`) 70 71 f, err = res.Find("locales/all.en-us.yaml") 72 r.NoError(err) 73 r.Contains(f.String(), `translation: "Welcome to Buffalo (EN)"`) 74 75 unexpected := []string{ 76 "Dockerfile", 77 "database.yml", 78 "models/models.go", 79 "go.mod", 80 ".buffalo.dev.yml", 81 "assets/css/application.scss.css", 82 "public/assets/application.js", 83 } 84 85 for _, u := range unexpected { 86 _, err = res.Find(u) 87 r.Error(err) 88 } 89 } 90 91 var commonExpected = []string{ 92 "main.go", 93 "actions/app.go", 94 "actions/actions_test.go", 95 "actions/render.go", 96 "actions/home.go", 97 "actions/home_test.go", 98 "fixtures/sample.toml", 99 "grifts/init.go", 100 ".codeclimate.yml", 101 ".env", 102 "inflections.json", 103 "README.md", 104 }