committee 4.0.0 → 4.4.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/committee.rb +3 -3
  3. data/lib/committee/drivers/open_api_2/driver.rb +0 -1
  4. data/lib/committee/errors.rb +12 -0
  5. data/lib/committee/middleware/request_validation.rb +4 -11
  6. data/lib/committee/middleware/response_validation.rb +7 -7
  7. data/lib/committee/request_unpacker.rb +46 -60
  8. data/lib/committee/schema_validator/hyper_schema.rb +41 -27
  9. data/lib/committee/schema_validator/open_api_3.rb +34 -21
  10. data/lib/committee/schema_validator/open_api_3/operation_wrapper.rb +8 -4
  11. data/lib/committee/schema_validator/open_api_3/router.rb +3 -1
  12. data/lib/committee/schema_validator/option.rb +22 -3
  13. data/lib/committee/test/methods.rb +27 -11
  14. data/lib/committee/test/schema_coverage.rb +101 -0
  15. data/lib/committee/utils.rb +28 -0
  16. data/lib/committee/validation_error.rb +3 -2
  17. data/test/bin/committee_stub_test.rb +5 -1
  18. data/test/committee_test.rb +1 -1
  19. data/test/middleware/base_test.rb +9 -3
  20. data/test/middleware/request_validation_open_api_3_test.rb +82 -6
  21. data/test/middleware/request_validation_test.rb +16 -0
  22. data/test/middleware/response_validation_open_api_3_test.rb +26 -2
  23. data/test/middleware/response_validation_test.rb +11 -0
  24. data/test/middleware/stub_test.rb +4 -0
  25. data/test/request_unpacker_test.rb +51 -110
  26. data/test/schema_validator/hyper_schema/router_test.rb +4 -0
  27. data/test/schema_validator/open_api_3/operation_wrapper_test.rb +14 -3
  28. data/test/schema_validator/open_api_3/request_validator_test.rb +3 -0
  29. data/test/schema_validator/open_api_3/response_validator_test.rb +12 -5
  30. data/test/test/methods_new_version_test.rb +16 -4
  31. data/test/test/methods_test.rb +151 -7
  32. data/test/test/schema_coverage_test.rb +216 -0
  33. data/test/test_helper.rb +20 -0
  34. metadata +41 -10
data/test/test_helper.rb CHANGED
@@ -55,10 +55,18 @@ def open_api_2_schema
55
55
  @open_api_2_schema ||= Committee::Drivers.load_from_file(open_api_2_schema_path)
56
56
  end
57
57
 
58
+ def open_api_2_form_schema
59
+ @open_api_2_form_schema ||= Committee::Drivers.load_from_file(open_api_2_form_schema_path)
60
+ end
61
+
58
62
  def open_api_3_schema
59
63
  @open_api_3_schema ||= Committee::Drivers.load_from_file(open_api_3_schema_path)
60
64
  end
61
65
 
66
+ def open_api_3_coverage_schema
67
+ @open_api_3_coverage_schema ||= Committee::Drivers.load_from_file(open_api_3_coverage_schema_path)
68
+ end
69
+
62
70
  # Don't cache this because we'll often manipulate the created hash in tests.
63
71
  def hyper_schema_data
64
72
  JSON.parse(File.read(hyper_schema_schema_path))
@@ -69,6 +77,10 @@ def open_api_2_data
69
77
  JSON.parse(File.read(open_api_2_schema_path))
70
78
  end
71
79
 
80
+ def open_api_2_form_data
81
+ JSON.parse(File.read(open_api_2_form_schema_path))
82
+ end
83
+
72
84
  def open_api_3_data
73
85
  YAML.load_file(open_api_3_schema_path)
74
86
  end
@@ -81,10 +93,18 @@ def open_api_2_schema_path
81
93
  "./test/data/openapi2/petstore-expanded.json"
82
94
  end
83
95
 
96
+ def open_api_2_form_schema_path
97
+ "./test/data/openapi2/petstore-expanded-form.json"
98
+ end
99
+
84
100
  def open_api_3_schema_path
85
101
  "./test/data/openapi3/normal.yaml"
86
102
  end
87
103
 
104
+ def open_api_3_coverage_schema_path
105
+ "./test/data/openapi3/coverage.yaml"
106
+ end
107
+
88
108
  def open_api_3_0_1_schema_path
89
109
  "./test/data/openapi3/3_0_1.yaml"
90
110
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: committee
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.4.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandur
8
8
  - geemus (Wesley Beary)
9
9
  - ota42y
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-05-14 00:00:00.000000000 Z
13
+ date: 2021-05-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json_schema
@@ -146,6 +146,20 @@ dependencies:
146
146
  version: '0'
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: rubocop
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "<"
152
+ - !ruby/object:Gem::Version
153
+ version: 1.13.0
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "<"
159
+ - !ruby/object:Gem::Version
160
+ version: 1.13.0
161
+ - !ruby/object:Gem::Dependency
162
+ name: rubocop-performance
149
163
  requirement: !ruby/object:Gem::Requirement
150
164
  requirements:
151
165
  - - ">="
@@ -159,7 +173,21 @@ dependencies:
159
173
  - !ruby/object:Gem::Version
160
174
  version: '0'
161
175
  - !ruby/object:Gem::Dependency
162
- name: rubocop-performance
176
+ name: rubocop-minitest
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ - !ruby/object:Gem::Dependency
190
+ name: rubocop-rake
163
191
  requirement: !ruby/object:Gem::Requirement
164
192
  requirements:
165
193
  - - ">="
@@ -186,7 +214,7 @@ dependencies:
186
214
  - - ">="
187
215
  - !ruby/object:Gem::Version
188
216
  version: '0'
189
- description:
217
+ description:
190
218
  email:
191
219
  - brandur@mutelight.org
192
220
  - geemus+github@gmail.com
@@ -238,6 +266,8 @@ files:
238
266
  - lib/committee/schema_validator/open_api_3/router.rb
239
267
  - lib/committee/schema_validator/option.rb
240
268
  - lib/committee/test/methods.rb
269
+ - lib/committee/test/schema_coverage.rb
270
+ - lib/committee/utils.rb
241
271
  - lib/committee/validation_error.rb
242
272
  - test/bin/committee_stub_test.rb
243
273
  - test/bin_test.rb
@@ -268,13 +298,14 @@ files:
268
298
  - test/schema_validator/open_api_3/response_validator_test.rb
269
299
  - test/test/methods_new_version_test.rb
270
300
  - test/test/methods_test.rb
301
+ - test/test/schema_coverage_test.rb
271
302
  - test/test_helper.rb
272
303
  - test/validation_error_test.rb
273
304
  homepage: https://github.com/interagent/committee
274
305
  licenses:
275
306
  - MIT
276
307
  metadata: {}
277
- post_install_message:
308
+ post_install_message:
278
309
  rdoc_options: []
279
310
  require_paths:
280
311
  - lib
@@ -285,12 +316,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
285
316
  version: 2.4.0
286
317
  required_rubygems_version: !ruby/object:Gem::Requirement
287
318
  requirements:
288
- - - ">="
319
+ - - ">"
289
320
  - !ruby/object:Gem::Version
290
- version: '0'
321
+ version: 1.3.1
291
322
  requirements: []
292
- rubygems_version: 3.1.2
293
- signing_key:
323
+ rubygems_version: 3.2.3
324
+ signing_key:
294
325
  specification_version: 4
295
326
  summary: A collection of Rack middleware to support JSON Schema.
296
327
  test_files: []