Sha256: 4fe46770e0f03cc7b9d086fdff118149b229cb0f0cb46ba2233bf3af8a788ffd

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true

require 'api-tester/reporter/status_code_report'
require 'api-tester/method_case_test'

module ApiTester
  # Checks the format constraints defined in contract
  module Format
    def self.go(contract)
      reports = []
      contract.endpoints.each do |endpoint|
        endpoint.methods.each do |method|
          cases = method.request.cases
          cases.each do |format_case|
            response = endpoint.call base_url: contract.base_url,
                                     method: method,
                                     payload: format_case.payload,
                                     headers: format_case.headers
            test = FormatTest.new response: response,
                                  payload: format_case.payload,
                                  expected_response: endpoint.bad_request_response,
                                  url: endpoint.url,
                                  verb: method.verb
            reports.concat test.check
          end
        end
      end
      reports
    end

    def self.order
      2
    end
  end

  # Test layout used by Format module
  class FormatTest < MethodCaseTest
    def initialize(response:, payload:, expected_response:, url:, verb:)
      super response: response,
            payload: payload,
            expected_response: expected_response,
            url: url,
            verb: verb,
            module_name: 'FormatModule'
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
api-tester-1.1.3 lib/api-tester/modules/format.rb
api-tester-1.1.2 lib/api-tester/modules/format.rb
api-tester-1.1.1 lib/api-tester/modules/format.rb