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  }