From 5fc907451fc18b792aec212d86768ccd34af25ee Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Mon, 11 Jan 2021 17:11:13 +0200 Subject: [PATCH] dialect/sql: test order by expression --- dialect/sql/builder_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dialect/sql/builder_test.go b/dialect/sql/builder_test.go index 41fd769ca..783f0157f 100644 --- a/dialect/sql/builder_test.go +++ b/dialect/sql/builder_test.go @@ -1384,3 +1384,14 @@ func TestBuilder_Err(t *testing.T) { b.AddError(fmt.Errorf("unexpected")) require.EqualError(t, b.Err(), "invalid; unexpected") } + +func TestSelector_OrderByExpr(t *testing.T) { + query, args := Select("*"). + From(Table("users")). + Where(GT("age", 28)). + OrderBy("name"). + OrderExpr(Expr("CASE WHEN id=? THEN id WHEN id=? THEN name END DESC", 1, 2)). + Query() + require.Equal(t, "SELECT * FROM `users` WHERE `age` > ? ORDER BY `name`, CASE WHEN id=? THEN id WHEN id=? THEN name END DESC", query) + require.Equal(t, []interface{}{28, 1, 2}, args) +}