Module: OpenapiFirst::Test::Coverage
- Defined in:
- lib/openapi_first/test/coverage.rb,
lib/openapi_first/test/coverage/plan.rb,
lib/openapi_first/test/coverage/route_task.rb,
lib/openapi_first/test/coverage/request_task.rb,
lib/openapi_first/test/coverage/response_task.rb,
lib/openapi_first/test/coverage/terminal_formatter.rb
Overview
The Coverage module is about tracking request and response validation to assess if all parts of the API description have been tested. Currently it does not care about unknown requests that are not part of any API description.
Defined Under Namespace
Classes: Plan, TerminalFormatter
Constant Summary
collapse
- Result =
Data.define(:plans, :coverage)
- RouteTask =
Data.define(:path, :request_method, :requests, :responses) do
def finished?
requests.all?(&:finished?) && responses.all?(&:finished?)
end
end
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.current_run ⇒ Object
Returns the value of attribute current_run.
18
19
20
|
# File 'lib/openapi_first/test/coverage.rb', line 18
def current_run
@current_run
end
|
Class Method Details
.install ⇒ Object
20
|
# File 'lib/openapi_first/test/coverage.rb', line 20
def install = Test.install
|
.plans ⇒ Object
Returns all plans (Plan) that were registered for this run
49
50
51
|
# File 'lib/openapi_first/test/coverage.rb', line 49
def plans
current_run.values
end
|
.reset ⇒ Object
Clear current coverage run
32
33
34
|
# File 'lib/openapi_first/test/coverage.rb', line 32
def reset
@current_run = {}
end
|
.result ⇒ Object
44
45
46
|
# File 'lib/openapi_first/test/coverage.rb', line 44
def result
Result.new(plans:, coverage:)
end
|
.start(skip_response: nil, skip_route: nil) ⇒ Object
22
23
24
25
26
27
|
# File 'lib/openapi_first/test/coverage.rb', line 22
def start(skip_response: nil, skip_route: nil)
@current_run = Test.definitions.values.to_h do |oad|
plan = Plan.for(oad, skip_response:, skip_route:)
[oad.key, plan]
end
end
|
.track_request(request, oad) ⇒ Object
36
37
38
|
# File 'lib/openapi_first/test/coverage.rb', line 36
def track_request(request, oad)
current_run[oad.key]&.track_request(request)
end
|
.track_response(response, _request, oad) ⇒ Object
40
41
42
|
# File 'lib/openapi_first/test/coverage.rb', line 40
def track_response(response, _request, oad)
current_run[oad.key]&.track_response(response)
end
|
.uninstall ⇒ Object
29
|
# File 'lib/openapi_first/test/coverage.rb', line 29
def uninstall = Test.uninstall
|