mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
ent/entc: add test for index creation
Reviewed By: idoshveki Differential Revision: D16762873 fbshipit-source-id: 3e656a0979c6d61e542ad5f4bc5a951089c5c0c0
This commit is contained in:
committed by
Facebook Github Bot
parent
2128fc2ca1
commit
230e764b77
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user