-
Notifications
You must be signed in to change notification settings - Fork 476
/
Copy path403_versions_spec.rb
124 lines (103 loc) · 2.73 KB
/
403_versions_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# frozen_string_literal: true
require 'spec_helper'
describe 'describing versions' do
describe 'nothings given' do
def app
Class.new(Grape::API) do
desc 'no versions given'
get '/nothings' do
{ message: 'hello world …' }
end
add_swagger_documentation format: :json
end
end
subject do
get '/swagger_doc'
JSON.parse(last_response.body)
end
specify do
expect(subject['info']['version']).to eql '0.0.1'
expect(subject['paths'].keys.first).to eql '/nothings'
end
end
describe 'API version given' do
def app
Class.new(Grape::API) do
version 'v2', using: :path
desc 'api versions given'
get '/api_version' do
{ message: 'hello world …' }
end
add_swagger_documentation format: :json
end
end
subject do
get '/v2/swagger_doc'
JSON.parse(last_response.body)
end
specify do
expect(subject['info']['version']).to eql '0.0.1'
expect(subject['paths'].keys.first).to eql '/v2/api_version'
end
end
describe 'DOC version given' do
def app
Class.new(Grape::API) do
desc 'doc versions given'
get '/doc_version' do
{ message: 'hello world …' }
end
add_swagger_documentation doc_version: '0.1'
end
end
subject do
get '/swagger_doc'
JSON.parse(last_response.body)
end
specify do
expect(subject['info']['version']).to eql '0.1'
expect(subject['paths'].keys.first).to eql '/doc_version'
end
end
describe 'both versions given' do
def app
Class.new(Grape::API) do
version :v3, using: :path
desc 'both versions given'
get '/both_versions' do
{ message: 'hello world …' }
end
add_swagger_documentation doc_version: '0.2'
end
end
subject do
get '/v3/swagger_doc'
JSON.parse(last_response.body)
end
specify do
expect(subject['info']['version']).to eql '0.2'
expect(subject['paths'].keys.first).to eql '/v3/both_versions'
end
end
describe 'try to override grape given version' do
def app
Class.new(Grape::API) do
version :v4, using: :path
desc 'overriding grape given version?'
get '/grape_version' do
{ message: 'hello world …' }
end
add_swagger_documentation doc_version: '0.0.3',
version: 'v5'
end
end
subject do
get '/v4/swagger_doc'
JSON.parse(last_response.body)
end
specify do
expect(subject['info']['version']).to eql '0.0.3'
expect(subject['paths'].keys.first).to eql '/v4/grape_version'
end
end
end