aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/relation
diff options
context:
space:
mode:
authorLauro Caetano <laurocaetano1@gmail.com>2014-04-07 16:01:17 -0300
committerLauro Caetano <laurocaetano1@gmail.com>2014-04-07 16:23:34 -0300
commit6c311e0b7538e8c55797aa889fdf66780ab283a4 (patch)
treecfaf86edc8aea5e4919963768a8f191359d981d6 /activerecord/test/cases/relation
parent6bbbe0b6513d7452cba43680f0da8362b98d4ca5 (diff)
downloadrails-6c311e0b7538e8c55797aa889fdf66780ab283a4.tar.gz
rails-6c311e0b7538e8c55797aa889fdf66780ab283a4.tar.bz2
rails-6c311e0b7538e8c55797aa889fdf66780ab283a4.zip
Build the reverse_order on its proper method.
The reverse_order method was using a flag to control if the order should be reversed or not. Instead of using this variable just build the reverse order inside its proper method. This implementation was leading to an unexpected behavior when using reverse_order and then applying reorder(nil). Example: Before Post.order(:name).reverse_order.reorder(nil) # => SELECT "posts".* FROM "posts" ORDER BY "posts"."id" DESC After Post.order(:name).reverse_order.reorder(nil) # => SELECT "posts".* FROM "posts"
Diffstat (limited to 'activerecord/test/cases/relation')
-rw-r--r--activerecord/test/cases/relation/mutation_test.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/activerecord/test/cases/relation/mutation_test.rb b/activerecord/test/cases/relation/mutation_test.rb
index 4fafa668fb..c81a3002d6 100644
--- a/activerecord/test/cases/relation/mutation_test.rb
+++ b/activerecord/test/cases/relation/mutation_test.rb
@@ -107,10 +107,18 @@ module ActiveRecord
end
test 'reverse_order!' do
- assert relation.reverse_order!.equal?(relation)
- assert relation.reverse_order_value
+ relation = Post.order('title ASC, comments_count DESC')
+
+ relation.reverse_order!
+
+ assert_equal 'title DESC', relation.order_values.first
+ assert_equal 'comments_count ASC', relation.order_values.last
+
+
relation.reverse_order!
- assert !relation.reverse_order_value
+
+ assert_equal 'title ASC', relation.order_values.first
+ assert_equal 'comments_count DESC', relation.order_values.last
end
test 'create_with!' do