From 230e764b77afea09827f5bf1c191325a53b5b04d Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Mon, 12 Aug 2019 07:09:22 -0700 Subject: [PATCH] ent/entc: add test for index creation Reviewed By: idoshveki Differential Revision: D16762873 fbshipit-source-id: 3e656a0979c6d61e542ad5f4bc5a951089c5c0c0 --- entc/gen/type_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/entc/gen/type_test.go b/entc/gen/type_test.go index 8d303d412..eea8ee2f9 100644 --- a/entc/gen/type_test.go +++ b/entc/gen/type_test.go @@ -4,6 +4,7 @@ import ( "strings" "testing" + "fbc/ent/entc/load" "fbc/ent/field" "github.com/stretchr/testify/assert" @@ -93,6 +94,37 @@ func TestType_Package(t *testing.T) { } } +func TestType_AddIndex(t *testing.T) { + size := 1024 + typ, err := NewType(Config{}, &load.Schema{ + Name: "User", + Fields: []*load.Field{ + {Name: "name", Type: field.TypeString}, + {Name: "text", Type: field.TypeString, Size: &size}, + }, + }) + require.NoError(t, err) + typ.Edges = append(typ.Edges, &Edge{Name: "next"}, &Edge{Name: "owner", Inverse: "files", Rel: Relation{Type: M2O, Columns: []string{"file_id"}}}) + + err = typ.AddIndex(&load.Index{Unique: true}) + require.Error(t, err, "missing fields") + + err = typ.AddIndex(&load.Index{Unique: true, Fields: []string{"unknown"}}) + require.Error(t, err, "unknown field for index") + + err = typ.AddIndex(&load.Index{Unique: true, Fields: []string{"text"}}) + require.Error(t, err, "index size exceeded") + + err = typ.AddIndex(&load.Index{Unique: true, Fields: []string{"name"}, Edge: "parent"}) + require.Error(t, err, "missing edge") + + err = typ.AddIndex(&load.Index{Unique: true, Fields: []string{"name"}, Edge: "next"}) + require.Error(t, err, "not an inverse edge") + + err = typ.AddIndex(&load.Index{Unique: true, Fields: []string{"name"}, Edge: "owner"}) + require.NoError(t, err) +} + func TestField(t *testing.T) { f := &Field{Type: field.TypeTime} require.True(t, f.IsTime())