github.com/Goboolean/common@v0.0.0-20231130153141-cb54596b217d/pkg/rdbms/constructor_test.go (about) 1 package rdbms_test 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/Goboolean/common/pkg/rdbms" 8 "github.com/Goboolean/common/pkg/resolver" 9 "github.com/joho/godotenv" 10 ) 11 12 var ( 13 db *rdbms.PSQL 14 queries *rdbms.Queries 15 ) 16 17 func TestMain(m *testing.M) { 18 19 if err := os.Chdir("../../"); err != nil { 20 panic(err) 21 } 22 23 if err := godotenv.Load(); err != nil { 24 panic(err) 25 } 26 27 SetupPSQL() 28 code := m.Run() 29 TeardownPSQL() 30 31 os.Exit(code) 32 } 33 34 func SetupPSQL() { 35 36 var err error 37 db, err = rdbms.NewDB(&resolver.ConfigMap{ 38 "HOST": os.Getenv("PSQL_HOST"), 39 "PORT": os.Getenv("PSQL_PORT"), 40 "USER": os.Getenv("PSQL_USER"), 41 "PASSWORD": os.Getenv("PSQL_PASS"), 42 "DATABASE": os.Getenv("PSQL_DATABASE"), 43 }) 44 if err != nil { 45 panic(err) 46 } 47 48 queries = rdbms.NewQueries(db) 49 } 50 51 func TeardownPSQL() { 52 if err := db.Close(); err != nil { 53 panic(err) 54 } 55 } 56 57 func Test_Constructor(t *testing.T) { 58 if err := db.Ping(); err != nil { 59 t.Errorf("Ping() failed: %v", err) 60 } 61 }