rswag-specs 1.0.3 → 1.1.0

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
  SHA1:
3
- metadata.gz: 2643849549d65f9a5854dad6d177588db4390bd9
4
- data.tar.gz: c164db99213ff0543cb2359a629bba5c9e162a64
3
+ metadata.gz: 49be56b88aea5546d3da61531c070ae2d01a27a6
4
+ data.tar.gz: 409e21ceb9ce56abd58de22e324da05664742a05
5
5
  SHA512:
6
- metadata.gz: 8f96616d29280adf887600c0c33cf31cac2899de178101ec27641e5f32a3f685ec02108016925fac17899b2663f155c197852d3c8932db8da7f6932300ce8bba
7
- data.tar.gz: b85ec04810dfb22c059f61a1519ffeb4c7dcdc28ed675b98bbe7ec314680eb31dd70476d9fe03e0c04eda2634cc117027692280c2de2c1c4999360d08f5f2f1a
6
+ metadata.gz: 1a58b3e8546f2297c08851b440ddec0929433ed00a6830c0ce1e9cd958b7c2722aeedb75ca42eef6cc88b0a8347e0cf5a99bf7a2df269f53e94b236b6b259866
7
+ data.tar.gz: b86aa2725f38bc3f839cb912fccc9a28a7dc8408b2e175294005ba9ef815cc7fdfc003a5587de5b1161202ad3ee8505c9cc2a6e0fb65a0bcf6f5e87e74cae08b
@@ -25,7 +25,7 @@ module Rswag
25
25
  # functionality while also setting the appropriate metadata if applicable
26
26
  def description(value=nil)
27
27
  return super() if value.nil?
28
- metadata[:operation][:description] = value
28
+ metadata[:operation][:description] = value
29
29
  end
30
30
 
31
31
  # These are array properties - note the splat operator
@@ -61,6 +61,14 @@ module Rswag
61
61
  metadata[:response][:headers][name] = attributes
62
62
  end
63
63
 
64
+ # NOTE: Similar to 'description', 'examples' need to handle the case when
65
+ # being invoked with no params to avoid overriding 'examples' method of
66
+ # rspec-core ExampleGroup
67
+ def examples(example = nil)
68
+ return super() if example.nil?
69
+ metadata[:response][:examples] = example
70
+ end
71
+
64
72
  def run_test!
65
73
  # NOTE: rspec 2.x support
66
74
  if RSPEC_VERSION < 3
@@ -13,6 +13,7 @@ module Rswag
13
13
 
14
14
  def validate!(response)
15
15
  validate_code!(response.code)
16
+ validate_headers!(response.headers)
16
17
  validate_body!(response.body)
17
18
  end
18
19
 
@@ -24,6 +25,15 @@ module Rswag
24
25
  end
25
26
  end
26
27
 
28
+ def validate_headers!(headers)
29
+ header_schema = @api_metadata[:response][:headers]
30
+ return if header_schema.nil?
31
+
32
+ header_schema.keys.each do |header_name|
33
+ raise UnexpectedResponse, "Expected response header #{header_name} to be present" if headers[header_name.to_s].nil?
34
+ end
35
+ end
36
+
27
37
  def validate_body!(body)
28
38
  response_schema = @api_metadata[:response][:schema]
29
39
  return if response_schema.nil?
@@ -34,7 +44,7 @@ module Rswag
34
44
  .merge(@global_metadata.slice(:definitions))
35
45
  JSON::Validator.validate!(validation_schema, body)
36
46
  rescue JSON::Schema::ValidationError => ex
37
- raise UnexpectedResponse, "Expected response body to match schema: #{ex.message}"
47
+ raise UnexpectedResponse, "Expected response body to match schema: #{ex.message}"
38
48
  end
39
49
  end
40
50
  end
@@ -1,5 +1,5 @@
1
1
  module Rswag
2
2
  module Specs
3
- VERSION = '1.0.3'
3
+ VERSION = '1.1.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rswag-specs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richie Morris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-17 00:00:00.000000000 Z
11
+ date: 2016-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails