github.com/atomicnibble/pop@v4.13.2+incompatible/soda/cmd/generate/model_cmd_test.go (about) 1 package generate 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/gobuffalo/envy" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func Test_ModelCmd_NoArg(t *testing.T) { 14 r := require.New(t) 15 c := ModelCmd 16 c.SetArgs([]string{}) 17 18 gp, err := envy.MustGet("GOPATH") 19 r.NoError(err) 20 cpath := filepath.Join(gp, "src", "github.com", "gobuffalo") 21 tdir, err := ioutil.TempDir(cpath, "testapp") 22 r.NoError(err) 23 defer os.RemoveAll(tdir) 24 25 pwd, err := os.Getwd() 26 r.NoError(err) 27 os.Chdir(tdir) 28 defer os.Chdir(pwd) 29 30 err = c.Execute() 31 r.EqualError(err, "you must set a name for your model") 32 } 33 34 func Test_ModelCmd_NameOnly(t *testing.T) { 35 r := require.New(t) 36 c := ModelCmd 37 c.SetArgs([]string{"users"}) 38 39 gp, err := envy.MustGet("GOPATH") 40 r.NoError(err) 41 cpath := filepath.Join(gp, "src", "github.com", "gobuffalo") 42 tdir, err := ioutil.TempDir(cpath, "testapp") 43 r.NoError(err) 44 defer os.RemoveAll(tdir) 45 46 pwd, err := os.Getwd() 47 r.NoError(err) 48 os.Chdir(tdir) 49 defer os.Chdir(pwd) 50 51 err = c.Execute() 52 r.NoError(err) 53 54 r.DirExists(filepath.Join(tdir, "migrations")) 55 r.DirExists(filepath.Join(tdir, "models")) 56 r.FileExists(filepath.Join(tdir, "models", "user.go")) 57 r.FileExists(filepath.Join(tdir, "models", "user_test.go")) 58 }