rspec-openapi 0.4.5 → 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -2
- data/README.md +9 -0
- data/lib/rspec/openapi/hooks.rb +3 -1
- data/lib/rspec/openapi/record_builder.rb +6 -3
- data/lib/rspec/openapi/schema_builder.rb +6 -0
- data/lib/rspec/openapi/version.rb +1 -1
- data/lib/rspec/openapi.rb +2 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d6f2c98f9e3462e319dc05435274d53b933deb41553c2f4d7b70b3d4d135c7e
|
4
|
+
data.tar.gz: 48e8862133eebc1cf0a700eb720603159f6274012342b4f9d259157d527af525
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8420b3ad4d97a8a5e1d1dd89280f2dd95335e362997740fbbd342d7a352a2a90f3b1d912366ac3d32693c44e3b65ef0058522323fbdd5f1d6900cc122d1d1ae1
|
7
|
+
data.tar.gz: 891a7b33e112310e66ec6bcff616aac5c93a8036028ba95cf25b5ac40a3d89e2599a906782a15a107c37779a7c657bfda4b92d5fb4e364725300d071c2a870e3
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,26 @@
|
|
1
|
+
## v0.4.8
|
2
|
+
|
3
|
+
* Fix a bug in nested parameters handling
|
4
|
+
[#46](https://github.com/k0kubun/rspec-openapi/pull/46)
|
5
|
+
|
6
|
+
## v0.4.7
|
7
|
+
|
8
|
+
* Add `info` config hash
|
9
|
+
[#43](https://github.com/k0kubun/rspec-openapi/pull/43)
|
10
|
+
|
11
|
+
## v0.4.6
|
12
|
+
|
13
|
+
* Fix "No route matched for" error in engine routes
|
14
|
+
[#38](https://github.com/k0kubun/rspec-openapi/pull/38)
|
15
|
+
|
1
16
|
## v0.4.5
|
2
17
|
|
3
|
-
|
18
|
+
* Fix linter issues for `tags` and `summary`
|
4
19
|
[#40](https://github.com/k0kubun/rspec-openapi/pull/40)
|
5
20
|
|
6
21
|
## v0.4.4
|
7
22
|
|
8
|
-
|
23
|
+
* De-duplicate parameters by a combination of `name` and `in`
|
9
24
|
[#39](https://github.com/k0kubun/rspec-openapi/pull/39)
|
10
25
|
|
11
26
|
## v0.4.3
|
data/README.md
CHANGED
@@ -126,6 +126,15 @@ RSpec::OpenAPI.enable_example = false
|
|
126
126
|
# Change `info.version`
|
127
127
|
RSpec::OpenAPI.application_version = '1.0.0'
|
128
128
|
|
129
|
+
# Set the info header details
|
130
|
+
RSpec::OpenAPI.info = {
|
131
|
+
description: 'My beautiful API',
|
132
|
+
license: {
|
133
|
+
'name': 'Apache 2.0',
|
134
|
+
'url': 'https://www.apache.org/licenses/LICENSE-2.0.html'
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
129
138
|
# Set `headers` - generate parameters with headers for a request
|
130
139
|
RSpec::OpenAPI.request_headers = %w[X-Authorization-Token]
|
131
140
|
|
data/lib/rspec/openapi/hooks.rb
CHANGED
@@ -20,7 +20,9 @@ RSpec.configuration.after(:suite) do
|
|
20
20
|
title = File.basename(Dir.pwd)
|
21
21
|
path_records.each do |path, records|
|
22
22
|
RSpec::OpenAPI::SchemaFile.new(path).edit do |spec|
|
23
|
-
|
23
|
+
schema = RSpec::OpenAPI::DefaultSchema.build(title)
|
24
|
+
schema[:info].merge!(RSpec::OpenAPI.info)
|
25
|
+
RSpec::OpenAPI::SchemaMerger.reverse_merge!(spec, schema)
|
24
26
|
records.each do |record|
|
25
27
|
begin
|
26
28
|
RSpec::OpenAPI::SchemaMerger.reverse_merge!(spec, RSpec::OpenAPI::SchemaBuilder.build(record))
|
@@ -79,10 +79,13 @@ class << RSpec::OpenAPI::RecordBuilder = Object.new
|
|
79
79
|
end
|
80
80
|
|
81
81
|
app.routes.router.recognize(request) do |route|
|
82
|
-
|
83
|
-
|
82
|
+
if route.app.matches?(request)
|
83
|
+
if route.app.engine?
|
84
|
+
return find_rails_route(request, app: route.app.app, fix_path: false)
|
85
|
+
else
|
86
|
+
return route
|
87
|
+
end
|
84
88
|
end
|
85
|
-
return route
|
86
89
|
end
|
87
90
|
raise "No route matched for #{request.request_method} #{request.path_info}"
|
88
91
|
end
|
@@ -158,9 +158,15 @@ class << RSpec::OpenAPI::SchemaBuilder = Object.new
|
|
158
158
|
def build_example(value)
|
159
159
|
return nil if value.nil?
|
160
160
|
value = value.dup
|
161
|
+
adjust_params(value)
|
162
|
+
end
|
163
|
+
|
164
|
+
def adjust_params(value)
|
161
165
|
value.each do |key, v|
|
162
166
|
if v.is_a?(ActionDispatch::Http::UploadedFile)
|
163
167
|
value[key] = v.original_filename
|
168
|
+
elsif v.is_a?(Hash)
|
169
|
+
adjust_params(v)
|
164
170
|
end
|
165
171
|
end
|
166
172
|
end
|
data/lib/rspec/openapi.rb
CHANGED
@@ -6,12 +6,13 @@ module RSpec::OpenAPI
|
|
6
6
|
@comment = nil
|
7
7
|
@enable_example = true
|
8
8
|
@description_builder = -> (example) { example.description }
|
9
|
+
@info = {}
|
9
10
|
@application_version = '1.0.0'
|
10
11
|
@request_headers = []
|
11
12
|
@server_urls = []
|
12
13
|
@example_types = %i[request]
|
13
14
|
|
14
15
|
class << self
|
15
|
-
attr_accessor :path, :comment, :enable_example, :description_builder, :application_version, :request_headers, :server_urls, :example_types
|
16
|
+
attr_accessor :path, :comment, :enable_example, :description_builder, :info, :application_version, :request_headers, :server_urls, :example_types
|
16
17
|
end
|
17
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-openapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takashi Kokubun
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
|
-
rubygems_version: 3.
|
93
|
+
rubygems_version: 3.1.2
|
94
94
|
signing_key:
|
95
95
|
specification_version: 4
|
96
96
|
summary: Generate OpenAPI schema from RSpec request specs
|