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  }