gorm/tests/default_value_test.go

39 lines
1.2 KiB
Go
Raw Normal View History

2020-06-25 01:38:07 +03:00
package tests_test
import (
"testing"
"gorm.io/gorm"
)
func TestDefaultValue(t *testing.T) {
type Harumph struct {
gorm.Model
2020-06-25 03:00:10 +03:00
Email string `gorm:"not null;index:,unique"`
Name string `gorm:"not null;default:'foo'"`
Name2 string `gorm:"not null;default:'foo'"`
Age int `gorm:"default:18"`
Enabled bool `gorm:"default:true"`
2020-06-25 01:38:07 +03:00
}
DB.Migrator().DropTable(&Harumph{})
if err := DB.AutoMigrate(&Harumph{}); err != nil {
t.Fatalf("Failed to migrate with default value, got error: %v", err)
}
var harumph = Harumph{Email: "hello@gorm.io"}
if err := DB.Create(&harumph).Error; err != nil {
t.Fatalf("Failed to create data with default value, got error: %v", err)
2020-06-25 03:00:10 +03:00
} else if harumph.Name != "foo" || harumph.Name2 != "foo" || harumph.Age != 18 || !harumph.Enabled {
2020-06-25 01:38:07 +03:00
t.Fatalf("Failed to create data with default value, got: %+v", harumph)
}
var result Harumph
if err := DB.First(&result, "email = ?", "hello@gorm.io").Error; err != nil {
t.Fatalf("Failed to find created data, got error: %v", err)
2020-06-25 03:00:10 +03:00
} else if result.Name != "foo" || result.Name2 != "foo" || result.Age != 18 || !result.Enabled {
2020-06-25 01:38:07 +03:00
t.Fatalf("Failed to find created data with default data, got %+v", result)
}
}