github.com/CloudCom/goose@v0.0.0-20151110184009-e03c3249c21b/cmd/goose/cmd_create_integration_test.go (about) 1 package main 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "strings" 8 "testing" 9 10 "github.com/CloudCom/goose/lib/goose" 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func TestIntegrationCreate_sql(t *testing.T) { 16 td, err := ioutil.TempDir("", "goose-test-") 17 require.NoError(t, err) 18 defer os.RemoveAll(td) 19 20 migrationsDir := filepath.Join(td, "migrations") 21 err = os.MkdirAll(migrationsDir, 0700) 22 require.NoError(t, err) 23 24 status, out, err := run( 25 []string{"create", "-type", "sql", "mymigration"}, 26 map[string]string{ 27 "DB_DRIVER": "sqlite3", 28 "DB_MIGRATIONS_DIR": migrationsDir, 29 }, 30 ) 31 require.NoError(t, err) 32 33 assert.Equal(t, 0, status) 34 35 require.Contains(t, out, migrationsDir) 36 i := strings.Index(out, migrationsDir) 37 fn := out[i:] 38 fn = strings.Fields(fn)[0] 39 40 fBS, err := ioutil.ReadFile(fn) 41 require.NoError(t, err) 42 43 tmplBS, err := goose.Asset("templates/migration.sql.tmpl") 44 require.NoError(t, err) 45 assert.Equal(t, string(tmplBS), string(fBS)) 46 }