forked from mirror/gorm
40 lines
878 B
Go
40 lines
878 B
Go
|
package tests_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/google/uuid"
|
||
|
"github.com/lib/pq"
|
||
|
"gorm.io/gorm"
|
||
|
)
|
||
|
|
||
|
func TestPostgres(t *testing.T) {
|
||
|
if DB.Dialector.Name() != "postgres" {
|
||
|
t.Skip()
|
||
|
}
|
||
|
|
||
|
type Harumph struct {
|
||
|
gorm.Model
|
||
|
Test uuid.UUID `gorm:"type:uuid;not null;default:gen_random_uuid()"`
|
||
|
Things pq.StringArray `gorm:"type:text[]"`
|
||
|
}
|
||
|
|
||
|
if err := DB.Exec("CREATE EXTENSION IF NOT EXISTS pgcrypto;").Error; err != nil {
|
||
|
t.Errorf("Failed to create extension pgcrypto, got error %v", err)
|
||
|
}
|
||
|
|
||
|
DB.Migrator().DropTable(&Harumph{})
|
||
|
|
||
|
if err := DB.AutoMigrate(&Harumph{}); err != nil {
|
||
|
t.Fatalf("Failed to migrate for uuid default value, got error: %v", err)
|
||
|
}
|
||
|
|
||
|
harumph := Harumph{}
|
||
|
DB.Create(&harumph)
|
||
|
|
||
|
var result Harumph
|
||
|
if err := DB.First(&result, "id = ?", harumph.ID).Error; err != nil {
|
||
|
t.Errorf("No error should happen, but got %v", err)
|
||
|
}
|
||
|
}
|