github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/internal/plugins/pop/newapp/generator_test.go (about) 1 package newapp 2 3 import ( 4 "context" 5 "io/ioutil" 6 "path/filepath" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func Test_AddModels(t *testing.T) { 13 r := require.New(t) 14 15 root, err := ioutil.TempDir("", "") 16 r.NoError(err) 17 18 g := Generator{} 19 g.addModels(root, "application") 20 21 r.DirExists(filepath.Join(root, "models")) 22 r.FileExists(filepath.Join(root, "models", "models.go")) 23 24 f, err := ioutil.ReadFile(filepath.Join(filepath.Join(root, "models", "models.go"))) 25 r.NoError(err) 26 27 r.Contains(string(f), "// DB is a connection to your database to be used") 28 29 } 30 31 func Test_addDatabaseConfig(t *testing.T) { 32 r := require.New(t) 33 root, err := ioutil.TempDir("", "") 34 r.NoError(err) 35 36 tcases := []struct { 37 databaseType string 38 expectedContent []string 39 }{ 40 {"", []string{"dialect: postgres"}}, 41 {"postgres", []string{"dialect: postgres"}}, 42 {"mariadb", []string{`dialect: "mariadb"`}}, 43 {"mysql", []string{`dialect: "mysql"`}}, 44 {"cockroach", []string{`dialect: cockroach`}}, 45 {"sqlite3", []string{`dialect: "sqlite3"`, filepath.Join(root, "application_development.sqlite")}}, 46 } 47 48 for _, tcase := range tcases { 49 g := Generator{ 50 databaseType: tcase.databaseType, 51 skip: false, 52 } 53 54 err = g.addDatabaseConfig(root, "application") 55 r.NoError(err, tcase.databaseType) 56 57 r.FileExists(filepath.Join(root, "database.yml"), tcase.databaseType) 58 f, err := ioutil.ReadFile(filepath.Join(filepath.Join(root, "database.yml"))) 59 r.NoError(err, tcase.databaseType) 60 61 for _, c := range tcase.expectedContent { 62 r.Contains(string(f), c, tcase.databaseType) 63 } 64 } 65 66 } 67 68 func Test_Newapp(t *testing.T) { 69 r := require.New(t) 70 71 root, err := ioutil.TempDir("", "") 72 r.NoError(err) 73 74 g := Generator{} 75 76 err = g.Newapp(context.Background(), root, "application", []string{}) 77 r.NoError(err) 78 79 r.DirExists(filepath.Join(root, "models")) 80 r.FileExists(filepath.Join(root, "models", "models.go")) 81 r.FileExists(filepath.Join(root, "database.yml")) 82 83 f, err := ioutil.ReadFile(filepath.Join(filepath.Join(root, "database.yml"))) 84 r.NoError(err) 85 86 r.Contains(string(f), "dialect: postgres") 87 88 g.skip = true 89 root, err = ioutil.TempDir("", "") 90 r.NoError(err) 91 92 err = g.Newapp(context.Background(), root, "application", []string{}) 93 r.NoError(err) 94 95 r.NoDirExists(filepath.Join(root, "models")) 96 r.NoFileExists(filepath.Join(root, "models", "models.go")) 97 r.NoFileExists(filepath.Join(root, "database.yml")) 98 99 }