aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/relations_test.rb
diff options
context:
space:
mode:
authorKohei Suzuki <eagletmt@gmail.com>2015-04-10 18:20:02 +0900
committerKohei Suzuki <eagletmt@gmail.com>2015-04-11 07:48:01 +0900
commit28375dd621befc495dfc77a6558534951be5ef54 (patch)
treed2c05ebfc4b482f19c2a287987c55691211dc120 /activerecord/test/cases/relations_test.rb
parentf0d3c920a5aeb3babc35500e13288e148238b65e (diff)
downloadrails-28375dd621befc495dfc77a6558534951be5ef54.tar.gz
rails-28375dd621befc495dfc77a6558534951be5ef54.tar.bz2
rails-28375dd621befc495dfc77a6558534951be5ef54.zip
Raise ArgumentError when find_by receives no arguments
It fixes the strange error saying undefined method `take'. ``` RelationTest#test_find_by_without_arg_behaves_same_with_find_by({}): NoMethodError: undefined method `take' for #<ActiveRecord::QueryMethods::WhereChain:0x007f9c55db1d68> ```
Diffstat (limited to 'activerecord/test/cases/relations_test.rb')
-rw-r--r--activerecord/test/cases/relations_test.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index 0cf44388fa..b8e2041b6d 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -1657,6 +1657,10 @@ class RelationTest < ActiveRecord::TestCase
assert_sql(/^((?!ORDER).)*$/) { Post.all.find_by(author_id: 2) }
end
+ test "find_by requires at least one argument" do
+ assert_raises(ArgumentError) { Post.all.find_by }
+ end
+
test "find_by! with hash conditions returns the first matching record" do
assert_equal posts(:eager_other), Post.order(:id).find_by!(author_id: 2)
end
@@ -1679,6 +1683,10 @@ class RelationTest < ActiveRecord::TestCase
end
end
+ test "find_by! requires at least one argument" do
+ assert_raises(ArgumentError) { Post.all.find_by! }
+ end
+
test "loaded relations cannot be mutated by multi value methods" do
relation = Post.all
relation.to_a