diff --git a/lib/airborne/path_matcher.rb b/lib/airborne/path_matcher.rb index 768a0f6..468da9a 100644 --- a/lib/airborne/path_matcher.rb +++ b/lib/airborne/path_matcher.rb @@ -54,7 +54,7 @@ def process_json(part, json) part = part.to_i json = json[part] else - json = json[part.to_sym] + json = json[part.to_s] end json end diff --git a/lib/airborne/request_expectations.rb b/lib/airborne/request_expectations.rb index cde9afb..e00032e 100644 --- a/lib/airborne/request_expectations.rb +++ b/lib/airborne/request_expectations.rb @@ -22,7 +22,10 @@ def expect_json(*args) def expect_json_keys(*args) call_with_path(args) do |param, body| - expect(body.keys).to include(*param) + expected = param + expected.map!(&:to_s) if expected.kind_of?(Array) + + expect(body.keys).to include( *expected ) end end @@ -143,7 +146,12 @@ def call_with_path(args) def extract_expected_value(expected, prop) begin raise unless expected.keys.include?(prop) - expected[prop] + + if expected[prop].kind_of?(Array) + expected[prop].map{|x| x.stringify_keys} + else + expected[prop] + end rescue raise ExpectationError, "Expectation is expected to contain property: #{prop}" end @@ -160,7 +168,7 @@ def extract_expected_type(expected, prop) def extract_actual(actual, prop) begin - value = actual[prop] + value = actual[prop.to_s] rescue raise ExpectationError, "Expected #{actual.class} #{actual}\nto be an object with property #{prop}" end