openapi_rspec 0.4 → 0.5

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: 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: []