aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2012-06-22 10:29:32 +0100
committerJon Leighton <j@jonathanleighton.com>2012-06-22 10:29:49 +0100
commit70d3625760aac9994790bd023f1b5060fe1d06c5 (patch)
tree1526059c8616e1dd67f804363d4468b7c8e65d54 /activerecord/test/cases
parentbacfa9d1cae4e3cb759ac20193be56923135d7be (diff)
downloadrails-70d3625760aac9994790bd023f1b5060fe1d06c5.tar.gz
rails-70d3625760aac9994790bd023f1b5060fe1d06c5.tar.bz2
rails-70d3625760aac9994790bd023f1b5060fe1d06c5.zip
disallow mutating a relation once loaded
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/relations_test.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index 6c5bee7382..8544d36aa8 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -1284,4 +1284,31 @@ class RelationTest < ActiveRecord::TestCase
Post.scoped.find_by!("1 = 0")
end
end
+
+ test "loaded relations cannot be mutated by multi value methods" do
+ relation = Post.scoped
+ relation.to_a
+
+ assert_raises(ActiveRecord::ImmutableRelation) do
+ relation.where! 'foo'
+ end
+ end
+
+ test "loaded relations cannot be mutated by single value methods" do
+ relation = Post.scoped
+ relation.to_a
+
+ assert_raises(ActiveRecord::ImmutableRelation) do
+ relation.limit! 5
+ end
+ end
+
+ test "loaded relations cannot be mutated by merge!" do
+ relation = Post.scoped
+ relation.to_a
+
+ assert_raises(ActiveRecord::ImmutableRelation) do
+ relation.merge! where: 'foo'
+ end
+ end
end