Class: OpenapiFirst::Test::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/openapi_first/test/configuration.rb

Overview

Helper class to setup tests

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/openapi_first/test/configuration.rb', line 7

def initialize
  @minimum_coverage = 100
  @coverage_formatter = Coverage::TerminalFormatter
  @coverage_formatter_options = {}
  @skip_response_coverage = nil
  @skip_coverage = nil
  @response_raise_error = true
  @ignored_unknown_status = Set.new([401, 404, 500])
  @ignore_unknown_response_status = false
  @report_coverage = true
  @ignore_unknown_requests = false
  @ignore_request_error = nil
  @ignore_response_error = nil
end

Instance Attribute Details

#coverage_formatterObject

Returns the value of attribute coverage_formatter.



34
35
36
# File 'lib/openapi_first/test/configuration.rb', line 34

def coverage_formatter
  @coverage_formatter
end

#coverage_formatter_optionsObject

Returns the value of attribute coverage_formatter_options.



34
35
36
# File 'lib/openapi_first/test/configuration.rb', line 34

def coverage_formatter_options
  @coverage_formatter_options
end

#ignore_unknown_requestsObject Also known as: ignore_unknown_requests?

Returns the value of attribute ignore_unknown_requests.



34
35
36
# File 'lib/openapi_first/test/configuration.rb', line 34

def ignore_unknown_requests
  @ignore_unknown_requests
end

#ignore_unknown_response_statusObject Also known as: ignore_unknown_response_status?

Returns the value of attribute ignore_unknown_response_status.



34
35
36
# File 'lib/openapi_first/test/configuration.rb', line 34

def ignore_unknown_response_status
  @ignore_unknown_response_status
end

#ignored_unknown_statusObject

Returns the value of attribute ignored_unknown_status.



36
37
38
# File 'lib/openapi_first/test/configuration.rb', line 36

def ignored_unknown_status
  @ignored_unknown_status
end

#minimum_coverageObject

Returns the value of attribute minimum_coverage.



34
35
36
# File 'lib/openapi_first/test/configuration.rb', line 34

def minimum_coverage
  @minimum_coverage
end

#report_coverageObject

Returns the value of attribute report_coverage.



36
37
38
# File 'lib/openapi_first/test/configuration.rb', line 36

def report_coverage
  @report_coverage
end

#response_raise_errorObject

Returns the value of attribute response_raise_error.



34
35
36
# File 'lib/openapi_first/test/configuration.rb', line 34

def response_raise_error
  @response_raise_error
end

Instance Method Details

#ignore_request_error(&block) ⇒ Object

Ignore certain errors for certain requests

Parameters:

  • block

    A Proc that will be called with [OpenapiFirst::ValidatedRequest]

Raises:

  • (ArgumentError)


57
58
59
60
61
# File 'lib/openapi_first/test/configuration.rb', line 57

def ignore_request_error(&block)
  raise ArgumentError, 'You have to pass a block' unless block_given?

  @ignore_request_error = block
end

#ignore_response_error(&block) ⇒ Object

Ignore certain errors for certain responses

Parameters:

  • block

    A Proc that will be called with [OpenapiFirst::ValidatedResponse, Rack::Request]

Raises:

  • (ArgumentError)


65
66
67
68
69
# File 'lib/openapi_first/test/configuration.rb', line 65

def ignore_response_error(&block)
  raise ArgumentError, 'You have to pass a block' unless block_given?

  @ignore_response_error = block
end

#observe(app, api: :default) ⇒ Object

Observe a rack app



30
31
32
# File 'lib/openapi_first/test/configuration.rb', line 30

def observe(app, api: :default)
  Observe.observe(app, api:)
end

#raise_request_error?(validated_request) ⇒ Boolean

Returns:

  • (Boolean)


87
88
89
90
91
92
# File 'lib/openapi_first/test/configuration.rb', line 87

def raise_request_error?(validated_request)
  return false if @ignore_request_error&.call(validated_request)
  return false if ignore_unknown_requests? && validated_request.unknown?

  true
end

#raise_response_error?(validated_response, rack_request) ⇒ Boolean

Returns:

  • (Boolean)


94
95
96
97
98
99
100
101
# File 'lib/openapi_first/test/configuration.rb', line 94

def raise_response_error?(validated_response, rack_request)
  return false if @ignore_response_error&.call(validated_response, rack_request)
  return false if response_raise_error == false
  return false if ignored_unknown_status.include?(validated_response.status)
  return false if ignore_unknown_response_status? && validated_response.error.type == :response_status_not_found

  true
end

#register(oad, as: :default) ⇒ Object

Register OADs, but don’t load them just yet

Parameters:

  • oad (OpenapiFirst::OAD)

    The OAD to register

  • as (Symbol) (defaults to: :default)

    The name to register the OAD under



25
26
27
# File 'lib/openapi_first/test/configuration.rb', line 25

def register(oad, as: :default)
  Test.register(oad, as:)
end

#skip_coverage(&block) ⇒ Object



78
79
80
81
82
# File 'lib/openapi_first/test/configuration.rb', line 78

def skip_coverage(&block)
  return @skip_coverage unless block_given?

  @skip_coverage = block
end

#skip_response_coverage(&block) ⇒ Object

Parameters:

  • block

    A Proc that will be called with [OpenapiFirst::ValidatedResponse, Rack::Request]



72
73
74
75
76
# File 'lib/openapi_first/test/configuration.rb', line 72

def skip_response_coverage(&block)
  return @skip_response_coverage unless block_given?

  @skip_response_coverage = block
end