github.com/paulwerner/bookkeeper@v0.1.0/store/store_test.go (about) 1 package store 2 3 import ( 4 "context" 5 "database/sql" 6 "log" 7 "os" 8 "path/filepath" 9 "testing" 10 11 "github.com/paulwerner/bookkeeper/infra" 12 "github.com/paulwerner/bookkeeper/ops" 13 ) 14 15 var db *sql.DB 16 17 func setWorkingDir() { 18 wd, _ := os.Getwd() 19 // go 1 directory up for migrations to be found 20 os.Chdir(filepath.Dir(wd)) 21 } 22 23 func TestMain(m *testing.M) { 24 setWorkingDir() 25 ctx := context.Background() 26 container, database, err := infra.CreatePostgresTestContainer(ctx, "testdb") 27 if err != nil { 28 log.Fatal(err) 29 } 30 ops.RunMigrations(database) 31 32 db = database 33 errCode := m.Run() 34 35 err = database.Close() 36 if err != nil { 37 log.Printf("failed to close db connection: %s", err) 38 } 39 40 err = container.Terminate(ctx) 41 if err != nil { 42 log.Printf("failed to terminate the tet container: %s", err) 43 } 44 45 os.Exit(errCode) 46 }