This commit is contained in:
black 2023-02-20 16:47:59 +08:00
parent 2f48ddbea8
commit 6cc0fb6f03

View File

@ -4,12 +4,38 @@ import (
"strings" "strings"
"sync" "sync"
"testing" "testing"
"time"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/schema" "gorm.io/gorm/schema"
"gorm.io/gorm/utils/tests" "gorm.io/gorm/utils/tests"
) )
func TestParseCustomTypeSchema(t *testing.T) {
type Product struct {
Date time.Time `gorm:"type:date"`
Time time.Time `gorm:"type:time"`
DateTime time.Time
}
product, err := schema.Parse(&Product{}, &sync.Map{}, schema.NamingStrategy{})
if err != nil {
t.Fatalf("failed to parse product, got err %v", err)
}
fields := []schema.Field{
{Name: "Date", DBName: "date", BindNames: []string{"Date"}, DataType: "date", CustomDataType: "date", Tag: `gorm:"type:date"`, TagSettings: map[string]string{"TYPE": "date"}},
{Name: "Time", DBName: "time", BindNames: []string{"Time"}, DataType: schema.Time, CustomDataType: "time", Tag: `gorm:"type:time"`, TagSettings: map[string]string{"TYPE": "time"}},
{Name: "DateTime", DBName: "date_time", BindNames: []string{"DateTime"}, DataType: schema.Time},
}
for _, f := range fields {
checkSchemaField(t, product, &f, func(field *schema.Field) {
f.Creatable = true
f.Updatable = true
f.Readable = true
})
}
}
func TestParseSchema(t *testing.T) { func TestParseSchema(t *testing.T) {
user, err := schema.Parse(&tests.User{}, &sync.Map{}, schema.NamingStrategy{}) user, err := schema.Parse(&tests.User{}, &sync.Map{}, schema.NamingStrategy{})
if err != nil { if err != nil {