Skip to content

Commit 3af8504

Browse files
authored
Merge pull request #376 from ahx/fix-test-no-raise-invalid-request
Fix test no raise invalid request
2 parents 4b507b2 + d1da6a1 commit 3af8504

File tree

6 files changed

+60
-4
lines changed

6 files changed

+60
-4
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
## 2.9.1
6+
7+
- Fix OpenapiFirst::Test's request validation to not always raise an error, but only for unknown requests
8+
59
## 2.9.0
610

711
- OpenapiFirst::Test now raises an error for unknown requests. You can deactivate with:

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
openapi_first (2.9.0)
4+
openapi_first (2.9.1)
55
hana (~> 1.3)
66
json_schemer (>= 2.1, < 3.0)
77
openapi_parameters (>= 0.5.1, < 2.0)

benchmarks/Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: ..
33
specs:
4-
openapi_first (2.9.0)
4+
openapi_first (2.9.1)
55
hana (~> 1.3)
66
json_schemer (>= 2.1, < 3.0)
77
openapi_parameters (>= 0.5.1, < 2.0)

lib/openapi_first/test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def self.install
118118

119119
def self.raise_request_error?(validated_request)
120120
return false if validated_request.valid?
121-
return true if validated_request.known?
121+
return false if validated_request.known?
122122

123123
!configuration.ignore_unknown_requests
124124
end

lib/openapi_first/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module OpenapiFirst
4-
VERSION = '2.9.0'
4+
VERSION = '2.9.1'
55
end

spec/test_spec.rb

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,58 @@ def call(_env)
411411
end
412412
end
413413

414+
describe 'handling invalid requests' do
415+
let(:definition) do
416+
OpenapiFirst.parse(
417+
{
418+
'openapi' => '3.1.0',
419+
'paths' => {
420+
'/stuff/{id}' => {
421+
'get' => {
422+
'parameters' => [
423+
{
424+
'name' => 'id',
425+
'in' => 'path',
426+
'required' => true,
427+
'schema' => {
428+
'type' => 'integer'
429+
}
430+
}
431+
],
432+
'responses' => {
433+
'200' => {
434+
'descrition' => 'Ok'
435+
}
436+
}
437+
}
438+
}
439+
}
440+
},
441+
filepath: 'somefile'
442+
)
443+
end
444+
445+
let(:app) do
446+
described_class.app(
447+
->(_env) { [200, { 'content-type' => 'application/json' }, ['foo']] },
448+
spec: definition
449+
)
450+
end
451+
452+
before(:each) do
453+
described_class.setup do |test|
454+
test.register(definition)
455+
test.report_coverage = false
456+
end
457+
end
458+
459+
it 'raises no error, but tracks the request' do
460+
app.call(Rack::MockRequest.env_for('/stuff/nostring'))
461+
462+
expect(described_class::Coverage.result.coverage).to eq 50
463+
end
464+
end
465+
414466
describe 'handling unknown requests paths' do
415467
let(:app) do
416468
described_class.app(

0 commit comments

Comments
 (0)