class ApiTester::UnexpectedFieldsTest

Test layout for UnexpectedFields module

Public Class Methods

new(response, url, method) click to toggle source
Calls superclass method ApiTester::MethodCaseTest::new
# File lib/api-tester/modules/unexpected_fields.rb, line 34
def initialize(response, url, method)
  super response: response,
        payload: method.request.default_payload,
        expected_response: method.expected_response,
        url: url,
        verb: method.verb,
        module_name: 'UnexpectedFieldsModule'
end

Public Instance Methods

check() click to toggle source
# File lib/api-tester/modules/unexpected_fields.rb, line 43
def check
  evaluator = ApiTester::ResponseEvaluator.new actual_body: json_parse(response.body),
                                               expected_fields: expected_response
  response_fields = evaluator.response_field_array
  expected_fields = evaluator.expected_fields
  increment_fields evaluator.seen_fields
  extra = response_fields - expected_fields
  extra.each do |extra_field|
    report = Report.new description: "UnexpectedFieldsModule - Found unexpected field #{extra_field}",
                        url: url,
                        request: payload,
                        expected_response: expected_response,
                        actual_response: response
    reports << report
  end
  reports
end