Sha256: 6268669197ea0b6b1a22dae7fb0eb706019a080c748a02b26370daa72d21c5e1
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
# frozen_string_literal: true require 'api-tester/util/supported_verbs' require 'api-tester/definition/method' require 'api-tester/method_case_test' module ApiTester # Check verbs not explicitly defined in contract module ExtraVerbs def self.go(contract) reports = [] contract.endpoints.each do |endpoint| extras = supported_verbs - endpoint.verbs headers = endpoint.methods[0].request.default_headers extras.each do |verb| verb_case = BoundaryCase.new description: "Verb check with #{verb} for #{endpoint.name}", payload: {}, headers: headers method = ApiTester::Method.new verb: verb, response: ApiTester::Response.new, request: ApiTester::Request.new response = endpoint.call base_url: contract.base_url, method: method, payload: verb_case.payload, headers: verb_case.headers test = VerbClass.new response: response, payload: verb_case.payload, expected_response: endpoint.not_allowed_response, url: endpoint.url, verb: verb reports.concat test.check end end reports end def self.supported_verbs ApiTester::SupportedVerbs.all end def self.order 3 end end # Test template used for module class VerbClass < MethodCaseTest def initialize(response:, payload:, expected_response:, url:, verb:) super response: response, payload: payload, expected_response: expected_response, url: url, verb: verb, module_name: 'VerbModule' end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
api-tester-1.1.3 | lib/api-tester/modules/extra_verbs.rb |
api-tester-1.1.2 | lib/api-tester/modules/extra_verbs.rb |