Module: RSpec::Rails::Api::DSL::Example

Defined in:
lib/rspec/rails/api/dsl/example.rb

Overview

These methods will be available in examples (i.e.: ‘for_code’)

Instance Method Summary collapse

Instance Method Details

#defined(entity) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/rspec/rails/api/dsl/example.rb', line 25

def defined(entity)
  current_resource = self.class.[:rrad].current_resource
  raise '@current_resource is unset' unless current_resource

  entities = self.class.[:rrad].resources[current_resource][:entities]

  out = entities[entity]
  raise "Unkown entity '#{entity}' in resource '#{current_resource}'" unless out

  out.expand_with(entities)
end

#visit(example, path_params: {}, payload: {}, headers: {}) ⇒ Object

rubocop:disable Metrics/AbcSize



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rspec/rails/api/dsl/example.rb', line 9

def visit(example, path_params: {}, payload: {}, headers: {}) # rubocop:disable Metrics/AbcSize
  raise 'Missing context. Call visit with for_code context.' unless example

  status_code    = prepare_status_code example.class.description
  request_params = prepare_request_params example.class.parent.description, path_params, payload, headers

  send(request_params[:action],
       request_params[:url],
       params:  request_params[:params].to_json,
       headers: request_params[:headers])

  check_response(response, status_code)

  set_request_example example.class.[:rrad], request_params, status_code, response.body
end