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
-
.current_run ⇒ Object
readonly
Returns the value of attribute current_run.
Class Method Summary collapse
- .install ⇒ Object
-
.plans ⇒ Object
Returns all plans (Plan) that were registered for this run.
-
.reset ⇒ Object
Clear current coverage run.
- .result ⇒ Object
- .start(skip_response: nil, skip_route: nil) ⇒ Object
- .track_request(request, oad) ⇒ Object
- .track_response(response, _request, oad) ⇒ Object
- .uninstall ⇒ Object
Class Attribute Details
.current_run ⇒ Object (readonly)
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 |