github.com/dkishere/pop/v6@v6.103.1/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/stretchr/testify/require" 10 ) 11 12 func Test_ModelCmd_NoArg(t *testing.T) { 13 r := require.New(t) 14 c := ModelCmd 15 c.SetArgs([]string{}) 16 17 tdir, err := ioutil.TempDir("", "testapp") 18 r.NoError(err) 19 defer os.RemoveAll(tdir) 20 21 pwd, err := os.Getwd() 22 r.NoError(err) 23 os.Chdir(tdir) 24 defer os.Chdir(pwd) 25 26 err = c.Execute() 27 r.EqualError(err, "you must set a name for your model") 28 } 29 30 func Test_ModelCmd_NameOnly(t *testing.T) { 31 r := require.New(t) 32 c := ModelCmd 33 c.SetArgs([]string{"users"}) 34 35 tdir, err := ioutil.TempDir("", "testapp") 36 r.NoError(err) 37 defer os.RemoveAll(tdir) 38 39 pwd, err := os.Getwd() 40 r.NoError(err) 41 os.Chdir(tdir) 42 defer os.Chdir(pwd) 43 44 err = c.Execute() 45 r.NoError(err) 46 47 r.DirExists(filepath.Join(tdir, "migrations")) 48 r.DirExists(filepath.Join(tdir, "models")) 49 r.FileExists(filepath.Join(tdir, "models", "user.go")) 50 r.FileExists(filepath.Join(tdir, "models", "user_test.go")) 51 }