Merge pull request #1084 from mrexox/fix-empty-body-for-flat-params-encoder

Fix empty array for FlatParamsEncoder {key: []} -> "key="
This commit is contained in:
risk danger olson 2019-12-29 23:18:21 -07:00 committed by GitHub
commit aea390a67c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 3 deletions

View File

@ -45,9 +45,13 @@ module Faraday
if value.nil?
buffer << "#{encoded_key}&"
elsif value.is_a?(Array)
value.each do |sub_value|
encoded_value = escape(sub_value)
buffer << "#{encoded_key}=#{encoded_value}&"
if value.empty?
buffer << "#{encoded_key}=&"
else
value.each do |sub_value|
encoded_value = escape(sub_value)
buffer << "#{encoded_key}=#{encoded_value}&"
end
end
else
encoded_value = escape(value)

View File

@ -26,4 +26,9 @@ RSpec.describe Faraday::FlatParamsEncoder do
params = { a: [true, false] }
expect(subject.encode(params)).to eq('a=true&a=false')
end
it 'encodes empty array in hash' do
params = { a: [] }
expect(subject.encode(params)).to eq('a=')
end
end