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  }