entc/gen: support count with field selection

Fixed https://github.com/ent/ent/issues/2036
This commit is contained in:
Ariel Mashraki
2021-10-17 18:48:17 +03:00
committed by Ariel Mashraki
parent 732b2a7d6e
commit 3e6c40886d
92 changed files with 406 additions and 2 deletions

View File

@@ -1893,6 +1893,10 @@ func TestQueryNodes(t *testing.T) {
WithArgs(40).
WillReturnRows(sqlmock.NewRows([]string{"COUNT"}).
AddRow(3))
mock.ExpectQuery(escape("SELECT COUNT(DISTINCT `users`.`name`) FROM `users` WHERE `age` < ? ORDER BY `id` LIMIT 3 OFFSET 4 FOR UPDATE NOWAIT")).
WithArgs(40).
WillReturnRows(sqlmock.NewRows([]string{"COUNT"}).
AddRow(3))
var (
users []*user
@@ -1933,9 +1937,16 @@ func TestQueryNodes(t *testing.T) {
require.Equal(t, &user{id: 3, age: 30, name: "a8m", edges: struct{ fk1, fk2 int }{1, 1}}, users[2])
// Count nodes.
spec.Node.Columns = nil
n, err := CountNodes(context.Background(), sql.OpenDB("", db), spec)
require.NoError(t, err)
require.Equal(t, 3, n)
// Count nodes.
spec.Node.Columns = []string{"name"}
n, err = CountNodes(context.Background(), sql.OpenDB("", db), spec)
require.NoError(t, err)
require.Equal(t, 3, n)
}
func TestQueryNodesSchema(t *testing.T) {