Module: ApiTester::MissingResource

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

Overview

Module checking various not found scenarios

Class Method Summary collapse

Class Method Details

.allowed_verbs(endpoint) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/api-tester/modules/missing_resource.rb', line 39

def self.allowed_verbs(endpoint)
  allowances = []
  endpoint.methods.each do |method|
    allowances << method.verb
  end
  allowances.uniq
end

.go(contract) ⇒ Object



9
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/missing_resource.rb', line 9

def self.go(contract)
  reports = []

  contract.endpoints.each do |endpoint|
    endpoint.path_params.each do |path_param|
      bad_resource = endpoint.relative_url.gsub("{#{path_param}}", 'gibberish')

      bad_endpoint = ApiTester::Endpoint.new name: 'Bad Resource',
                                             relative_url: bad_resource
      method = ApiTester::Method.new verb: ApiTester::SupportedVerbs::GET,
                                     response: ApiTester::Response.new(
                                       status_code: 200
                                     ),
                                     request: ApiTester::Request.new
      response = bad_endpoint.call base_url: contract.base_url + bad_resource,
                                   method: method,
                                   payload: {},
                                   headers: contract.required_headers
      test = MissingResourceTest.new response,
                                     {},
                                     endpoint.not_found_response,
                                     bad_resource,
                                     ApiTester::SupportedVerbs::GET
      test.check
    end
  end

  reports
end

.orderObject



47
48
49
# File 'lib/api-tester/modules/missing_resource.rb', line 47

def self.order
  4
end