lib/api-tester/modules/extra_verbs.rb in api-tester-1.0.0 vs lib/api-tester/modules/extra_verbs.rb in api-tester-1.1.1
- old
+ new
@@ -1,20 +1,34 @@
- require 'api-tester/util/supported_verbs'
+# frozen_string_literal: true
+require 'api-tester/util/supported_verbs'
+
module ApiTester
+ # Check verbs not explicitly defined in contract
module ExtraVerbs
- def self.go contract
+ def self.go(contract)
reports = []
contract.endpoints.each do |endpoint|
extras = ApiTester::SupportedVerbs.all - endpoint.verbs
headers = endpoint.methods[0].request.default_headers
extras.each do |verb|
- verb_case = BoundaryCase.new("Verb check with #{verb} for #{endpoint.name}", {}, headers)
- method = ApiTester::Method.new verb, ApiTester::Response.new, ApiTester::Request.new
- response = endpoint.call method, verb_case.payload, verb_case.headers
- test = VerbClass.new response, verb_case.payload, endpoint.not_allowed_response, endpoint.url, 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
@@ -23,11 +37,17 @@
def self.order
3
end
end
+ # Test template used for module
class VerbClass < MethodCaseTest
- def initialize response, payload, expected_response, url, verb
- super response, payload, expected_response, url, verb, "VerbModule"
- end
+ 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