From e8e4401d27ab64e7da3e111e72ac725edb80b0aa Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Wed, 3 Nov 2021 11:53:17 +0200 Subject: [PATCH] dialect/sqltest: use postgres dialect in predicate tests --- dialect/sql/builder_test.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/dialect/sql/builder_test.go b/dialect/sql/builder_test.go index 5dc1021b1..f0839c271 100644 --- a/dialect/sql/builder_test.go +++ b/dialect/sql/builder_test.go @@ -1883,7 +1883,7 @@ func TestReusePredicates(t *testing.T) { }{ { p: EQ("active", false), - wantQuery: "SELECT * FROM `users` WHERE `active` = ?", + wantQuery: `SELECT * FROM "users" WHERE "active" = $1`, wantArgs: []interface{}{false}, }, { @@ -1891,7 +1891,7 @@ func TestReusePredicates(t *testing.T) { EQ("a", "a"), EQ("b", "b"), ), - wantQuery: "SELECT * FROM `users` WHERE `a` = ? OR `b` = ?", + wantQuery: `SELECT * FROM "users" WHERE "a" = $1 OR "b" = $2`, wantArgs: []interface{}{"a", "b"}, }, { @@ -1904,7 +1904,7 @@ func TestReusePredicates(t *testing.T) { In("id", Select("oid").From(Table("history"))), ), ), - wantQuery: "SELECT * FROM `users` WHERE `active` = ? AND `name` LIKE ? AND `name` LIKE ? AND (`id` IN (SELECT `oid` FROM `audit`) OR `id` IN (SELECT `oid` FROM `history`))", + wantQuery: `SELECT * FROM "users" WHERE "active" = $1 AND "name" LIKE $2 AND "name" LIKE $3 AND ("id" IN (SELECT "oid" FROM "audit") OR "id" IN (SELECT "oid" FROM "history"))`, wantArgs: []interface{}{true, "foo%", "%bar"}, }, { @@ -1916,17 +1916,21 @@ func TestReusePredicates(t *testing.T) { Join(t1). On(pivot.C("group_id"), t1.C("id")). Where(EQ(t1.C("name"), "ent")) - return In("id", matches) + return And( + GT("balance", 0), + In("id", matches), + GT("balance", 100), + ) }(), - wantQuery: "SELECT * FROM `users` WHERE `id` IN (SELECT `user_groups`.`user_id` FROM `user_groups` JOIN `groups` AS `t1` ON `user_groups`.`group_id` = `t1`.`id` WHERE `t1`.`name` = ?)", - wantArgs: []interface{}{"ent"}, + wantQuery: `SELECT * FROM "users" WHERE "balance" > $1 AND "id" IN (SELECT "user_groups"."user_id" FROM "user_groups" JOIN "groups" AS "t1" ON "user_groups"."group_id" = "t1"."id" WHERE "t1"."name" = $2) AND "balance" > $3`, + wantArgs: []interface{}{0, "ent", 100}, }, } for _, tt := range tests { - query, args := Select().From(Table("users")).Where(tt.p).Query() + query, args := Dialect(dialect.Postgres).Select().From(Table("users")).Where(tt.p).Query() require.Equal(t, tt.wantQuery, query) require.Equal(t, tt.wantArgs, args) - query, args = Select().From(Table("users")).Where(tt.p).Query() + query, args = Dialect(dialect.Postgres).Select().From(Table("users")).Where(tt.p).Query() require.Equal(t, tt.wantQuery, query) require.Equal(t, tt.wantArgs, args) }