diff --git a/lib/pact/consumer_contract/query.rb b/lib/pact/consumer_contract/query.rb index c29073e..0a46ec7 100644 --- a/lib/pact/consumer_contract/query.rb +++ b/lib/pact/consumer_contract/query.rb @@ -99,7 +99,7 @@ def self.normalize_params(params, name, v) else params[k] ||= {} raise ParameterTypeError, "expected Hash (got #{params[k].class.name}) for param `#{k}'" unless params_hash_type?(params[k]) - params[k] = normalize_params(params[k], after, v, depth - 1) + params[k] = normalize_params(params[k], after, v) end params diff --git a/spec/lib/pact/consumer_contract/query_spec.rb b/spec/lib/pact/consumer_contract/query_spec.rb index 609c957..d0b1df9 100644 --- a/spec/lib/pact/consumer_contract/query_spec.rb +++ b/spec/lib/pact/consumer_contract/query_spec.rb @@ -27,6 +27,10 @@ module Pact it "returns a nested map" do expect(subject).to eq "foo" => "bar2", "baz" => ["thing1", "thing2"] end + + it "handles arrays and hashes" do + expect(Query.parse_string("a[]=1&a[]=2&b[c]=3")).to eq "a" => ["1","2"], "b" => { "c" => "3" } + end end end end