package gorm_test import ( "testing" "github.com/jinzhu/gorm" ) type CalculateField struct { gorm.Model Name string Children []CalculateFieldChild Category CalculateFieldCategory EmbeddedField } type EmbeddedField struct { EmbeddedName string `sql:"NOT NULL;DEFAULT:'hello'"` } type CalculateFieldChild struct { gorm.Model CalculateFieldID uint Name string } type CalculateFieldCategory struct { gorm.Model CalculateFieldID uint Name string } func TestCalculateField(t *testing.T) { var field CalculateField fields := DB.NewScope(&field).Fields() if fields["children"].Relationship == nil || fields["category"].Relationship == nil { t.Errorf("Should calculate fields correctly for the first time") } if field, ok := fields["embedded_name"]; !ok { t.Errorf("should find embedded field") } else if _, ok := field.TagSettings["NOT NULL"]; !ok { t.Errorf("should find embedded field's tag settings") } }