openapi_rspec 0.4 → 0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6bea441305836e75d93b65e38d4cb5297c16501228e286d6f444d2870a2bfc30
4
- data.tar.gz: 3fa60f7de6682ba67b56b17562ad5e35d0548a51e8e61a5afe3f5462a38cbd36
3
+ metadata.gz: 748ba53aceac0ac02c274be192c1fadb895df66212e38da8bf9f88f80943f504
4
+ data.tar.gz: d2ab4b53ae116da4daf0bdaec48e2c8ff4d54b8ff98e1e4dc05bfd2d0d4c6dfc
5
5
  SHA512:
6
- metadata.gz: 6df382e223c149c2c250b8bb97a19470be4d784fe8bdd0cebc1161b806f69aef13cc13f6ca299a9c8f3df9792d2606bb64ecb893183d669769fb4b95aed27a6f
7
- data.tar.gz: e4cf9b350d38b189fdf73e451143ccd5388e19104f9b557f62636e41791cfc2d28aec5e3e813f0868dc95eaa84165b3471585f3fa74b5f445e0e1743ac7f59a0
6
+ metadata.gz: 1a89fcf6b169fddf3ade6b8032354460046e5be264b38ba4b6fd164a2c5caaa1fc10a5369599701aa9b03bd347a6dbff313a3b7ca36e48e12ac2557fde4ca6e4
7
+ data.tar.gz: 15d575f392ac9ba39e2e5e11aa1732596f8ca9eaf43cbba72cf76ef036901d5bdd06ed40f8e5c7f5ff45afcd1038b2552c266e1bd420b0703642322c08ce2bde
data/README.md CHANGED
@@ -7,6 +7,7 @@
7
7
  [![Build Status](https://travis-ci.org/medsolutions/openapi_rspec.svg?branch=master)][travis]
8
8
  [![Code Climate](https://codeclimate.com/github/medsolutions/openapi_rspec/badges/gpa.svg)][codeclimate]
9
9
  [![Test Coverage](https://codeclimate.com/github/medsolutions/openapi_rspec/badges/coverage.svg)][codeclimate]
10
+ [![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/testdouble/standard)
10
11
 
11
12
  Test your API against OpenApi v3 documentation
12
13
 
@@ -147,7 +148,7 @@ To validate response use:
147
148
  # ...
148
149
  ```
149
150
 
150
- To set **request body** use `params` helper method:
151
+ To set **request body** (as form data) use `params` helper method and provide a `Hash`:
151
152
 
152
153
  ```ruby
153
154
  # ...
@@ -159,6 +160,19 @@ To set **request body** use `params` helper method:
159
160
  # ...
160
161
  ```
161
162
 
163
+ To set **raw request body** use the `params` helper method and provide a `String`:
164
+
165
+ ```ruby
166
+ # ...
167
+ post "/pets" do
168
+ params { JSON.dump(name: "Lucky") }
169
+
170
+ validate_code(201)
171
+ end
172
+ # ...
173
+ ```
174
+
175
+
162
176
  To set **path parameter** use `let` helper method:
163
177
 
164
178
  ```ruby
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry-configurable'
4
- require 'openapi_validator'
5
- require 'rspec'
3
+ require "dry-configurable"
4
+ require "openapi_validator"
5
+ require "rspec"
6
6
 
7
- require 'openapi_rspec/helpers'
8
- require 'openapi_rspec/matchers'
9
- require 'openapi_rspec/module_helpers'
10
- require 'openapi_rspec/schema_loader'
11
- require 'openapi_rspec/version'
7
+ require "openapi_rspec/helpers"
8
+ require "openapi_rspec/matchers"
9
+ require "openapi_rspec/module_helpers"
10
+ require "openapi_rspec/schema_loader"
11
+ require "openapi_rspec/version"
12
12
 
13
13
  module OpenapiRspec
14
14
  extend Dry::Configurable
@@ -8,7 +8,7 @@ module OpenapiRspec
8
8
  end
9
9
 
10
10
  def description
11
- 'be a valid OpenAPI documentation'
11
+ "be a valid OpenAPI documentation"
12
12
  end
13
13
 
14
14
  def failure_message
@@ -5,13 +5,19 @@ module OpenapiRspec
5
5
  def request_params(metadata)
6
6
  path = defined?(uri) ? uri : metadata[:uri]
7
7
  method = defined?(http_method) ? http_method : metadata[:method]
8
+ params = if openapi_rspec_params.is_a?(Hash)
9
+ path_params(path).merge!(openapi_rspec_params)
10
+ else
11
+ openapi_rspec_params
12
+ end
13
+
8
14
  {
9
15
  method: method,
10
16
  path: path,
11
- params: path_params(path).merge!(openapi_rspec_params),
17
+ params: params,
12
18
  headers: openapi_rspec_headers,
13
19
  query: openapi_rspec_query,
14
- media_type: openapi_rspec_media_type
20
+ media_type: openapi_rspec_media_type,
15
21
  }
16
22
  end
17
23
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'openapi_rspec/documentation_validator'
4
- require 'openapi_rspec/request_validator'
3
+ require "openapi_rspec/documentation_validator"
4
+ require "openapi_rspec/request_validator"
5
5
 
6
6
  module OpenapiRspec
7
7
  module Matchers
@@ -52,8 +52,8 @@ module OpenapiRspec
52
52
  end
53
53
 
54
54
  def process(method, uri)
55
- metadata[:openapi_rspec] = { uri: uri, method: method }
56
- let(:openapi_rspec_media_type) { 'application/json' }
55
+ metadata[:openapi_rspec] = {uri: uri, method: method}
56
+ let(:openapi_rspec_media_type) { "application/json" }
57
57
  let(:openapi_rspec_params) { {} }
58
58
  let(:openapi_rspec_headers) { {} }
59
59
  let(:openapi_rspec_query) { {} }
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry-initializer'
4
- require 'rack/test'
5
- require 'uri'
3
+ require "dry-initializer"
4
+ require "rack/test"
5
+ require "uri"
6
6
 
7
7
  module OpenapiRspec
8
8
  class RequestValidator
@@ -70,7 +70,7 @@ module OpenapiRspec
70
70
  def request_params
71
71
  {
72
72
  headers: headers,
73
- params: params
73
+ params: params,
74
74
  }
75
75
  end
76
76
  end
@@ -13,7 +13,7 @@ module OpenapiRspec
13
13
  rescue JSON::ParserError
14
14
  YAML.safe_load(schema)
15
15
  end
16
- rescue StandardError => e
16
+ rescue => e
17
17
  raise "Unable to parse OpenAPI schema. #{e}"
18
18
  end
19
19
 
@@ -22,10 +22,10 @@ module OpenapiRspec
22
22
  response = session.get(path)
23
23
 
24
24
  raise "Response code: #{response.status}" unless response.successful?
25
- raise 'Empty body' if response.body.empty?
25
+ raise "Empty body" if response.body.empty?
26
26
 
27
27
  response.body
28
- rescue StandardError => e
28
+ rescue => e
29
29
  raise "Unable to perform GET request for the OpenAPI schema '#{path}'. #{e}"
30
30
  end
31
31
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenapiRspec
4
- VERSION = '0.4'
4
+ VERSION = "0.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openapi_rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Svyatoslav Kryukov
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-07 00:00:00.000000000 Z
11
+ date: 2020-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-configurable
@@ -98,17 +98,17 @@ dependencies:
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '10.0'
103
+ version: 12.3.3
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '10.0'
111
- description:
110
+ version: 12.3.3
111
+ description:
112
112
  email:
113
113
  - s.g.kryukov@yandex.ru
114
114
  executables: []
@@ -129,7 +129,7 @@ homepage: https://github.com/medsolutions/openapi_rspec
129
129
  licenses:
130
130
  - MIT
131
131
  metadata: {}
132
- post_install_message:
132
+ post_install_message:
133
133
  rdoc_options: []
134
134
  require_paths:
135
135
  - lib
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  version: '0'
146
146
  requirements: []
147
147
  rubygems_version: 3.0.3
148
- signing_key:
148
+ signing_key:
149
149
  specification_version: 4
150
150
  summary: Test your API against OpenApi v3 documentation
151
151
  test_files: []