Module: Committee::Test::Methods

Defined in:
lib/committee/test/methods.rb

Instance Method Summary collapse

Instance Method Details

#assert_schema_conformObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/committee/test/methods.rb', line 3

def assert_schema_conform
  @schema ||= Committee::Middleware::Base.get_schema(committee_options)
  @router ||= @schema.build_router(committee_options)

  v = @router.build_schema_validator(request_object)

  unless v.link_exist?
    response = "`#{request_object.request_method} #{request_object.path_info}` undefined in schema."
    raise Committee::InvalidResponse.new(response)
  end

  status, headers, body = response_data
  v.response_validate(status, headers, [body], true) if validate_response?(status)
end

#committee_optionsObject



18
19
20
# File 'lib/committee/test/methods.rb', line 18

def committee_options
  raise "please set options"
end

#request_objectObject



22
23
24
# File 'lib/committee/test/methods.rb', line 22

def request_object
  raise "please set object like 'last_request'"
end

#response_dataObject



26
27
28
# File 'lib/committee/test/methods.rb', line 26

def response_data
  raise "please set response data like 'last_response.status, last_response.headers, last_response.body'"
end

#validate_response?(status) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/committee/test/methods.rb', line 30

def validate_response?(status)
  Committee::Middleware::ResponseValidation.validate?(status, committee_options.fetch(:validate_success_only, false))
end