Module: OpenapiRspec
- Extended by:
- Dry::Configurable
- Defined in:
- lib/openapi_rspec.rb,
lib/openapi_rspec/helpers.rb,
lib/openapi_rspec/version.rb,
lib/openapi_rspec/matchers.rb,
lib/openapi_rspec/module_helpers.rb,
lib/openapi_rspec/request_validator.rb,
lib/openapi_rspec/documentation_validator.rb
Defined Under Namespace
Modules: Helpers, Matchers, ModuleHelpers
Classes: DocumentationValidator, RequestValidator
Constant Summary
collapse
- VERSION =
"0.3"
Class Method Summary
collapse
Class Method Details
.api(doc, build: false, **params) ⇒ Object
16
17
18
19
|
# File 'lib/openapi_rspec.rb', line 16
def self.api(doc, build: false, **params)
doc = OpenapiBuilder.call(doc).data if build
OpenapiValidator.call(doc, **params)
end
|
.api_by_path(openapi_path, **params) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/openapi_rspec.rb', line 21
def self.api_by_path(openapi_path, **params)
session = Rack::Test::Session.new(config.app)
begin
response = session.get(openapi_path)
rescue StandardError => e
raise "Unable to perform GET request for swagger json: #{openapi_path} - #{e}."
end
parsed_doc = case openapi_path.split(".").last
when "yml", "yaml"
YAML.load(response.body)
when "json"
JSON.parse(response.body)
else
raise "Unable to parse OpenAPI doc, '#{openapi_path}' is undefined format"
end
OpenapiValidator.call(parsed_doc, **params)
end
|