package handler_test import ( "os" "testing" "time" "github.com/micro/services/codes/handler" "gorm.io/driver/postgres" "gorm.io/gorm" ) func testHandler(t *testing.T) *handler.Codes { // connect to the database addr := os.Getenv("POSTGRES_URL") if len(addr) == 0 { addr = "postgresql://postgres@localhost:5432/postgres?sslmode=disable" } db, err := gorm.Open(postgres.Open(addr), &gorm.Config{}) if err != nil { t.Fatalf("Error connecting to database: %v", err) } // migrate the database if err := db.AutoMigrate(&handler.Code{}); err != nil { t.Fatalf("Error migrating database: %v", err) } // clean any data from a previous run if err := db.Exec("TRUNCATE TABLE codes CASCADE").Error; err != nil { t.Fatalf("Error cleaning database: %v", err) } return &handler.Codes{DB: db, Time: time.Now} }