Module: ApiTester::ExtraVerbs

Defined in:
lib/api-tester/modules/extra_verbs.rb

Overview

Check verbs not explicitly defined in contract

Class Method Summary collapse

Class Method Details

.go(contract) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/api-tester/modules/extra_verbs.rb', line 10

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

.orderObject



43
44
45
# File 'lib/api-tester/modules/extra_verbs.rb', line 43

def self.order
  3
end

.supported_verbsObject



39
40
41
# File 'lib/api-tester/modules/extra_verbs.rb', line 39

def self.supported_verbs
  ApiTester::SupportedVerbs.all
end