mirror of
https://github.com/ent/ent.git
synced 2026-05-28 09:49:08 +03:00
ent: add support for enum types
Summary: Pull Request resolved: https://github.com/facebookincubator/ent/pull/45 Reviewed By: alexsn Differential Revision: D17715085 fbshipit-source-id: 7472e1bd9cf7a8a5bd98f96e6e884c0e27f36803
This commit is contained in:
committed by
Facebook Github Bot
parent
55fefbfbec
commit
1ebfa489c5
File diff suppressed because one or more lines are too long
@@ -38,6 +38,7 @@ type Field struct {
|
||||
Info *field.TypeInfo `json:"type,omitempty"`
|
||||
Tag string `json:"tag,omitempty"`
|
||||
Size *int `json:"size,omitempty"`
|
||||
Enums []string `json:"enums,omitempty"`
|
||||
Unique bool `json:"unique,omitempty"`
|
||||
Nillable bool `json:"nillable,omitempty"`
|
||||
Optional bool `json:"optional,omitempty"`
|
||||
@@ -101,6 +102,7 @@ func NewField(fd *field.Descriptor) (*Field, error) {
|
||||
Name: fd.Name,
|
||||
Info: fd.Info,
|
||||
Tag: fd.Tag,
|
||||
Enums: fd.Enums,
|
||||
Unique: fd.Unique,
|
||||
Nillable: fd.Nillable,
|
||||
Optional: fd.Optional,
|
||||
|
||||
@@ -30,6 +30,9 @@ func (User) Fields() []ent.Field {
|
||||
Nillable(),
|
||||
field.String("optional").
|
||||
Optional(),
|
||||
field.Enum("state").
|
||||
Values("on", "off").
|
||||
Optional(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +75,7 @@ func TestMarshalSchema(t *testing.T) {
|
||||
schema := &Schema{}
|
||||
require.NoError(t, json.Unmarshal(buf, schema))
|
||||
require.Equal(t, "User", schema.Name)
|
||||
require.Len(t, schema.Fields, 4)
|
||||
require.Len(t, schema.Fields, 5)
|
||||
require.Equal(t, "age", schema.Fields[0].Name)
|
||||
require.Equal(t, field.TypeInt, schema.Fields[0].Info.Type)
|
||||
|
||||
@@ -89,6 +92,10 @@ func TestMarshalSchema(t *testing.T) {
|
||||
require.False(t, schema.Fields[3].Nillable)
|
||||
require.True(t, schema.Fields[3].Optional)
|
||||
|
||||
require.Equal(t, "state", schema.Fields[4].Name)
|
||||
require.Equal(t, field.TypeEnum, schema.Fields[4].Info.Type)
|
||||
require.Equal(t, []string{"on", "off"}, schema.Fields[4].Enums)
|
||||
|
||||
require.Len(t, schema.Edges, 2)
|
||||
require.Equal(t, "groups", schema.Edges[0].Name)
|
||||
require.Equal(t, "Group", schema.Edges[0].Type)
|
||||
|
||||
Reference in New Issue
Block a user