aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorGaurish Sharma <contact@gaurishsharma.com>2015-03-28 12:08:36 +0530
committerGaurish Sharma <contact@gaurishsharma.com>2015-08-28 18:02:13 +0530
commit877e42e2321d544a50edaf23291130f131d6879d (patch)
tree9f55076f09ef54b321988ee418e6179d91766993 /actionpack/test
parent3c6bb892715a43b0e02336277f2dd2552fa68af4 (diff)
downloadrails-877e42e2321d544a50edaf23291130f131d6879d.tar.gz
rails-877e42e2321d544a50edaf23291130f131d6879d.tar.bz2
rails-877e42e2321d544a50edaf23291130f131d6879d.zip
[Feature] params.require requires array of params
This PR adds ability to accept arrays which allows you to require multiple values in one method. so instead of this: ```ruby params.require(:person).require(:first_name) params.require(:person).require(:last_name) ``` Here it will be one line for each params, so say if I require 10params, it will be 10lines of repeated code which is not dry. So I have added new method which does this in one line: ```ruby params.require(:person).require([:first_name, :last_name]) ``` Comments welcome
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/required_params_test.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/actionpack/test/controller/required_params_test.rb b/actionpack/test/controller/required_params_test.rb
index a901e56332..98b8e44b22 100644
--- a/actionpack/test/controller/required_params_test.rb
+++ b/actionpack/test/controller/required_params_test.rb
@@ -48,4 +48,21 @@ class ParametersRequireTest < ActiveSupport::TestCase
ActionController::Parameters.new(person: {}).require(:person)
end
end
+
+ test "require array of params" do
+ safe_params = ActionController::Parameters.new(person: {first_name: 'Gaurish', title: 'Mjallo'})
+ .require(:person)
+ .require([:first_name, :last_name])
+
+ assert_kind_of Array, safe_params
+ assert_equal ['Gaurish', 'Mjallo'], safe_params
+ end
+
+ test "require array when it contains a nil values" do
+ assert_raises(ActionController::ParameterMissing) do
+ safe_params = ActionController::Parameters.new(person: {first_name: 'Gaurish', title: nil})
+ .require(:person)
+ .require([:first_name, :last_name])
+ end
+ end
end