github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/newapp/web/web_test.go (about) 1 package web 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/JarrahG/buffalocli/internal/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("web", ".") 23 app.PackageRoot("web") 24 25 gg, err := New(&Options{ 26 Options: &core.Options{ 27 App: app, 28 }, 29 }) 30 r.NoError(err) 31 32 run := gentest.NewRunner() 33 run.WithGroup(gg) 34 r.NoError(run.Run()) 35 36 res := run.Results() 37 38 cmds := []string{ 39 "go mod init web", 40 } 41 r.Len(res.Commands, len(cmds)) 42 43 for i, c := range res.Commands { 44 r.Equal(cmds[i], strings.Join(c.Args, " ")) 45 } 46 47 for _, e := range commonExpected { 48 _, err = res.Find(e) 49 r.NoError(err) 50 } 51 52 f, err := res.Find("actions/render.go") 53 r.NoError(err) 54 55 body := f.String() 56 r.Contains(body, `TemplatesFS: templates.FS(),`) 57 r.NotContains(body, `DefaultContentType: "application/json",`) 58 unexpected := []string{ 59 "Dockerfile", 60 "database.yml", 61 "models/models.go", 62 "go.mod", 63 ".buffalo.dev.yml", 64 "assets/css/application.scss.css", 65 "public/assets/application.js", 66 } 67 68 for _, u := range unexpected { 69 _, err = res.Find(u) 70 r.Error(err) 71 } 72 } 73 74 var commonExpected = []string{ 75 "actions/actions_test.go", 76 "actions/app.go", 77 "actions/home.go", 78 "actions/home_test.go", 79 "actions/render.go", 80 "fixtures/sample.toml", 81 "grifts/init.go", 82 "locales/all.en-us.yaml", 83 "locales/embed.go", 84 "public/embed.go", 85 "public/robots.txt", 86 "templates/_flash.plush.html", 87 "templates/application.plush.html", 88 "templates/embed.go", 89 "templates/home/index.plush.html", 90 ".codeclimate.yml", 91 ".env", 92 "inflections.json", 93 "cmd/app/main.go", 94 "README.md", 95 }