aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorKevin Deisz <kevin.deisz@gmail.com>2019-01-24 14:35:52 -0500
committerKevin Deisz <kevin.deisz@gmail.com>2019-01-24 14:35:52 -0500
commit5cf36e2ea2242ea6ea0cf879adf9febd86fd3aa2 (patch)
tree8174d3d9c7b24a38a4410a380a89ac62c7a28351 /activerecord/test
parent1e25dfde032172bab2b126e60fac0302025defcc (diff)
downloadrails-5cf36e2ea2242ea6ea0cf879adf9febd86fd3aa2.tar.gz
rails-5cf36e2ea2242ea6ea0cf879adf9febd86fd3aa2.tar.bz2
rails-5cf36e2ea2242ea6ea0cf879adf9febd86fd3aa2.zip
Make `And` and `Case` into expression nodes
Allows aliasing, predications, ordering, and various other functions on `And` and `Case` nodes. This brings them in line with other nodes like `Binary` and `Unary`.
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/cases/arel/nodes/and_test.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/test/cases/arel/nodes/and_test.rb b/activerecord/test/cases/arel/nodes/and_test.rb
index eff54abd91..d123ca9fd0 100644
--- a/activerecord/test/cases/arel/nodes/and_test.rb
+++ b/activerecord/test/cases/arel/nodes/and_test.rb
@@ -16,6 +16,15 @@ module Arel
assert_equal 2, array.uniq.size
end
end
+
+ describe "functions as node expression" do
+ it "allows aliasing" do
+ aliased = And.new(["foo", "bar"]).as("baz")
+
+ assert_kind_of As, aliased
+ assert_kind_of SqlLiteral, aliased.right
+ end
+ end
end
end
end