ent/entc: add test for index creation

Reviewed By: idoshveki

Differential Revision: D16762873

fbshipit-source-id: 3e656a0979c6d61e542ad5f4bc5a951089c5c0c0
This commit is contained in:
Ariel Mashraki
2019-08-12 07:09:22 -07:00
committed by Facebook Github Bot
parent 2128fc2ca1
commit 230e764b77

View File

@@ -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())