From 15af025dd0b8ebeeb5b678bd2d0abb608f0a8875 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki <7413593+a8m@users.noreply.github.com> Date: Sat, 6 Feb 2021 16:17:52 +0200 Subject: [PATCH] entc/gen: reject schemas whose package conflicts with ent predeclared identifiers (#1244) --- entc/gen/type.go | 7 ++++--- entc/gen/type_test.go | 11 +++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/entc/gen/type.go b/entc/gen/type.go index 2bea69808..1c7a56284 100644 --- a/entc/gen/type.go +++ b/entc/gen/type.go @@ -691,12 +691,12 @@ func ValidSchemaName(name string) error { if types.Universe.Lookup(pkg) != nil { return fmt.Errorf("schema lowercase name conflicts with Go predeclared identifier %q", pkg) } + if _, ok := globalIdent[pkg]; ok { + return fmt.Errorf("schema lowercase name conflicts ent predeclared identifier %q", pkg) + } if _, ok := globalIdent[name]; ok { return fmt.Errorf("schema name conflicts with ent predeclared identifier %q", name) } - if _, ok := privateField[pkg]; ok { - return fmt.Errorf("schema name conflicts with ent builder fields %q", pkg) - } return nil } @@ -1348,6 +1348,7 @@ var ( "As", "Asc", "Client", + "config", "Count", "Debug", "Desc", diff --git a/entc/gen/type_test.go b/entc/gen/type_test.go index 04cd8b345..901fe3022 100644 --- a/entc/gen/type_test.go +++ b/entc/gen/type_test.go @@ -321,3 +321,14 @@ func TestEdge(t *testing.T) { require.Equal(t, "user_groups", users.Label()) require.Equal(t, "user_groups", groups.Label()) } + +func TestValidSchemaName(t *testing.T) { + err := ValidSchemaName("Config") + require.Error(t, err) + err = ValidSchemaName("Mutation") + require.Error(t, err) + err = ValidSchemaName("Boring") + require.NoError(t, err) + err = ValidSchemaName("Order") + require.NoError(t, err) +}