rswag-specs 2.3.3 → 2.5.1.rc1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9834a553612943f7768facb91500a6a6a702efbbf1ed0f4d179caa4f66dea998
4
- data.tar.gz: 1acf6ab7b297be895913f9b671959dbb68d86f1a916512d3fa576a0fa4f92994
3
+ metadata.gz: 5a41cca6f980cfefb6b1eb26f339ce3dde70cf5433a5c11afe744442527de145
4
+ data.tar.gz: c2a313ab6e6c94639e95470349b19efa5352f1c6fcf23ad01466ee69def51e51
5
5
  SHA512:
6
- metadata.gz: 62ea7c70b1dbad13ce834b2aac602259d712d581d50f49cc3c56b332f4067f4685ae1288db2b86de557149b4935b0fad1862f840493fc693f21aca69e3970f08
7
- data.tar.gz: 5df7edd21cfcd4815b13b357ae20fbd56527ac45d81572d03bbdef15eb46985ef767c316087034ee273caf243d151b91b086091e7ceec17df5691459840f0ea8
6
+ metadata.gz: 4def2f35b74af018ef97c06adb59b0f521ada9a3259f5ac0ba92c6f87b1efb3aea7c377b9f305229000854b9aed6220838b1aeca521cad5f3cc79bfca0fbffff
7
+ data.tar.gz: 22aa75f9e0ee3289490b550b5627f496ba828bed34384c42f241e541a0d280735ef26681ac3a7f9e1d208783e318161c7c399a391684baa654feee6a377b3453
@@ -28,9 +28,11 @@ module Rswag
28
28
  end
29
29
 
30
30
  def swagger_dry_run
31
- @swagger_dry_run ||= begin
32
- @rspec_config.swagger_dry_run.nil? || @rspec_config.swagger_dry_run
31
+ return @swagger_dry_run if defined? @swagger_dry_run
32
+ if ENV.key?('SWAGGER_DRY_RUN')
33
+ @rspec_config.swagger_dry_run = ENV['SWAGGER_DRY_RUN'] == '1'
33
34
  end
35
+ @swagger_dry_run = @rspec_config.swagger_dry_run.nil? || @rspec_config.swagger_dry_run
34
36
  end
35
37
 
36
38
  def swagger_format
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
-
2
+ require "active_support"
3
3
  require 'active_support/core_ext/hash/slice'
4
4
  require 'active_support/core_ext/hash/conversions'
5
5
  require 'json'
@@ -194,12 +194,36 @@ module Rswag
194
194
 
195
195
  def build_json_payload(parameters, example)
196
196
  body_param = parameters.select { |p| p[:in] == :body }.first
197
- body_param ? example.send(body_param[:name]).to_json : nil
197
+
198
+ return nil unless body_param
199
+
200
+ raise(MissingParameterError, body_param[:name]) unless example.respond_to?(body_param[:name])
201
+
202
+ example.send(body_param[:name]).to_json
198
203
  end
199
204
 
200
205
  def doc_version(doc)
201
206
  doc[:openapi] || doc[:swagger] || '3'
202
207
  end
203
208
  end
209
+
210
+ class MissingParameterError < StandardError
211
+ attr_reader :body_param
212
+
213
+ def initialize(body_param)
214
+ @body_param = body_param
215
+ end
216
+
217
+ def message
218
+ <<~MSG
219
+ Missing parameter '#{body_param}'
220
+
221
+ Please check your spec. It looks like you defined a body parameter,
222
+ but did not declare usage via let. Try adding:
223
+
224
+ let(:#{body_param}) {}
225
+ MSG
226
+ end
227
+ end
204
228
  end
205
229
  end
@@ -50,7 +50,11 @@ module Rswag
50
50
  .merge(schemas)
51
51
 
52
52
  errors = JSON::Validator.fully_validate(validation_schema, body)
53
- raise UnexpectedResponse, "Expected response body to match schema: #{errors[0]}" if errors.any?
53
+ return unless errors.any?
54
+
55
+ raise UnexpectedResponse,
56
+ "Expected response body to match schema: #{errors[0]}\n" \
57
+ "Response body: #{JSON.pretty_generate(JSON.parse(body))}"
54
58
  end
55
59
 
56
60
  def definitions_or_component_schemas(swagger_doc, version)
@@ -62,7 +66,7 @@ module Rswag
62
66
  swagger_doc.slice(:definitions)
63
67
  else
64
68
  components = swagger_doc[:components] || {}
65
- { components: { schemas: components[:schemas] } }
69
+ { components: components }
66
70
  end
67
71
  end
68
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rswag-specs
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.3
4
+ version: 2.5.1.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richie Morris
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-02-07 00:00:00.000000000 Z
13
+ date: 2022-02-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '3.1'
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: '7.0'
24
+ version: '7.1'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -31,7 +31,7 @@ dependencies:
31
31
  version: '3.1'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '7.0'
34
+ version: '7.1'
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: railties
37
37
  requirement: !ruby/object:Gem::Requirement
@@ -41,7 +41,7 @@ dependencies:
41
41
  version: '3.1'
42
42
  - - "<"
43
43
  - !ruby/object:Gem::Version
44
- version: '7.0'
44
+ version: '7.1'
45
45
  type: :runtime
46
46
  prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
@@ -51,7 +51,7 @@ dependencies:
51
51
  version: '3.1'
52
52
  - - "<"
53
53
  - !ruby/object:Gem::Version
54
- version: '7.0'
54
+ version: '7.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: json-schema
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -109,11 +109,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  requirements:
112
- - - ">="
112
+ - - ">"
113
113
  - !ruby/object:Gem::Version
114
- version: '0'
114
+ version: 1.3.1
115
115
  requirements: []
116
- rubygems_version: 3.0.6
116
+ rubygems_version: 3.3.3
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: An OpenAPI-based (formerly called Swagger) DSL for rspec-rails & accompanying