Skip to content

Commit c0d9ee9

Browse files
blakenumbata
authored andcommitted
Add test
1 parent a89c16f commit c0d9ee9

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

spec/openapi_3/namespace_tags_spec.rb

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# frozen_string_literal: true
2+
3+
require 'spec_helper'
4+
5+
describe 'namespace tags check' do
6+
include_context 'namespace example'
7+
8+
before :all do
9+
class TestApi < Grape::API
10+
mount TheApi::NamespaceApi
11+
add_swagger_documentation openapi_version: '3.0'
12+
end
13+
end
14+
15+
def app
16+
TestApi
17+
end
18+
19+
describe 'retrieves swagger-documentation on /swagger_doc' do
20+
subject do
21+
get '/swagger_doc.json'
22+
JSON.parse(last_response.body)
23+
end
24+
25+
specify do
26+
expect(subject['tags']).to eql(
27+
[
28+
{ 'name' => 'hudson', 'description' => 'Operations about hudsons' },
29+
{ 'name' => 'colorado', 'description' => 'Operations about colorados' },
30+
{ 'name' => 'thames', 'description' => 'Operations about thames' },
31+
{ 'name' => 'niles', 'description' => 'Operations about niles' }
32+
]
33+
)
34+
35+
expect(subject['paths']['/hudson']['get']['tags']).to eql(['hudson'])
36+
expect(subject['paths']['/colorado/simple']['get']['tags']).to eql(['colorado'])
37+
expect(subject['paths']['/colorado/simple-test']['get']['tags']).to eql(['colorado'])
38+
expect(subject['paths']['/thames/simple_with_headers']['get']['tags']).to eql(['thames'])
39+
expect(subject['paths']['/niles/items']['post']['tags']).to eql(['niles'])
40+
expect(subject['paths']['/niles/custom']['get']['tags']).to eql(['niles'])
41+
end
42+
end
43+
44+
describe 'retrieves the documentation for mounted-api' do
45+
subject do
46+
get '/swagger_doc/colorado.json'
47+
JSON.parse(last_response.body)
48+
end
49+
50+
specify do
51+
expect(subject['tags']).to eql(
52+
[
53+
{ 'name' => 'colorado', 'description' => 'Operations about colorados' }
54+
]
55+
)
56+
57+
expect(subject['paths']['/colorado/simple']['get']['tags']).to eql(['colorado'])
58+
expect(subject['paths']['/colorado/simple-test']['get']['tags']).to eql(['colorado'])
59+
end
60+
61+
describe 'includes headers' do
62+
subject do
63+
get '/swagger_doc/thames.json'
64+
JSON.parse(last_response.body)
65+
end
66+
67+
specify do
68+
expect(subject['tags']).to eql(
69+
[
70+
{ 'name' => 'thames', 'description' => 'Operations about thames' }
71+
]
72+
)
73+
74+
expect(subject['paths']['/thames/simple_with_headers']['get']['tags']).to eql(['thames'])
75+
end
76+
end
77+
end
78+
end

0 commit comments

Comments
 (0)