From 112cb940aa17a0979b9f6282c07ace2f6a0896c1 Mon Sep 17 00:00:00 2001 From: Max Holder Date: Sat, 30 Aug 2014 13:58:18 -0400 Subject: Add SelectManager#distinct_on to set/unset Arel::Nodes::DistinctOn quantifier --- test/test_select_manager.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'test') diff --git a/test/test_select_manager.rb b/test/test_select_manager.rb index 3380bbec6f..1ffb56fd9f 100644 --- a/test/test_select_manager.rb +++ b/test/test_select_manager.rb @@ -1158,5 +1158,26 @@ module Arel manager.distinct(false).must_equal manager end end + + describe 'distinct_on' do + it 'sets the quantifier' do + manager = Arel::SelectManager.new Table.engine + table = Table.new :users + + manager.distinct_on(table['id']) + manager.ast.cores.last.set_quantifier.must_equal Arel::Nodes::DistinctOn.new(table['id']) + + manager.distinct_on(false) + manager.ast.cores.last.set_quantifier.must_equal nil + end + + it "chains" do + manager = Arel::SelectManager.new Table.engine + table = Table.new :users + + manager.distinct_on(table['id']).must_equal manager + manager.distinct_on(false).must_equal manager + end + end end end -- cgit v1.2.3