提交 cbe7899f 编写于 作者: X Xavier Noria

revises 877e42e2

* A string in the example lacked quotes.

* The tests asserted stuff about :last_name, whereas
  test params do not have that key.

* But, the first one passed, why? After hitting my head against
  the wall and doing some obscure rituals realized the new
  #require had an important typo, wanted to iterate over the
  array argument (key), but it ran over its own hash keys
  (method #keys).

* Modified the test to prevent the same typo to happen again.

* The second test assigned to an unused variable safe_params
  that has been therefore removed.

* Grammar of the second test description.

* Since I was on it, reworded both test descriptions.
上级 35df925b
......@@ -256,11 +256,11 @@ def permit!
# ActionController::Parameters.new(first_name: 'Gaurish', title: nil).require([:first_name, :title])
# # => ActionController::ParameterMissing: param is missing or the value is empty: title
#
# params = ActionController::Parameters.new(first_name: 'Gaurish', title: Mjallo)
# params = ActionController::Parameters.new(first_name: 'Gaurish', title: 'Mjallo')
# first_name, title = params.require([:first_name, :title])
#
def require(key)
return keys.map { |k| require(k) } if key.is_a?(Array)
return key.map { |k| require(k) } if key.is_a?(Array)
value = self[key]
if value.present? || value == false
value
......
......@@ -49,20 +49,20 @@ class ParametersRequireTest < ActiveSupport::TestCase
end
end
test "require array of params" do
safe_params = ActionController::Parameters.new(person: {first_name: 'Gaurish', title: 'Mjallo'})
test "require array when all required params are present" do
safe_params = ActionController::Parameters.new(person: {first_name: 'Gaurish', title: 'Mjallo', city: 'Barcelona'})
.require(:person)
.require([:first_name, :last_name])
.require([:first_name, :title])
assert_kind_of Array, safe_params
assert_equal ['Gaurish', 'Mjallo'], safe_params
end
test "require array when it contains a nil values" do
test "require array when a required param is missing" do
assert_raises(ActionController::ParameterMissing) do
safe_params = ActionController::Parameters.new(person: {first_name: 'Gaurish', title: nil})
ActionController::Parameters.new(person: {first_name: 'Gaurish', title: nil})
.require(:person)
.require([:first_name, :last_name])
.require([:first_name, :title])
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册