mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
entc/gen: unique field can not have default value
Reviewed By: alexsn Differential Revision: D16827420 fbshipit-source-id: 9a9896980203ba1ca2c53412071423847d18d8cb
This commit is contained in:
committed by
Facebook Github Bot
parent
c16d3c8e25
commit
ec302a47e2
@@ -125,11 +125,13 @@ func NewType(c Config, schema *load.Schema) (*Type, error) {
|
||||
fields: make(map[string]*Field, len(schema.Fields)),
|
||||
}
|
||||
for i, f := range schema.Fields {
|
||||
if !f.Type.Valid() {
|
||||
switch {
|
||||
case !f.Type.Valid():
|
||||
return nil, fmt.Errorf("invalid type for field %s", f.Name)
|
||||
}
|
||||
if f.Nillable && !f.Optional {
|
||||
case f.Nillable && !f.Optional:
|
||||
return nil, fmt.Errorf("nillable field %q must be optional", f.Name)
|
||||
case f.Unique && f.Default:
|
||||
return nil, fmt.Errorf("unique field %q can not have default value", f.Name)
|
||||
}
|
||||
typ.Fields[i] = &Field{
|
||||
def: f,
|
||||
|
||||
@@ -20,6 +20,14 @@ func TestType(t *testing.T) {
|
||||
require.Equal("t1", typ.Label())
|
||||
require.Equal("t1", typ.Package())
|
||||
require.Equal("t", typ.Receiver())
|
||||
|
||||
typ, err = NewType(Config{Package: "entc/gen"}, &load.Schema{
|
||||
Fields: []*load.Field{
|
||||
{Unique: true, Default: true, Type: field.TypeInt},
|
||||
},
|
||||
})
|
||||
require.Error(err, "unique field can not have default")
|
||||
require.Nil(typ)
|
||||
}
|
||||
|
||||
func TestType_Label(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user