File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'mount override api' do
6
+ def app
7
+ old_api = Class . new ( Grape ::API ) do
8
+ desc 'old endpoint' , success : { code : 200 , message : 'old message' }
9
+ params do
10
+ optional :param , type : Integer , desc : 'old param'
11
+ end
12
+ get do
13
+ 'old'
14
+ end
15
+ end
16
+
17
+ new_api = Class . new ( Grape ::API ) do
18
+ desc 'new endpoint' , success : { code : 200 , message : 'new message' }
19
+ params do
20
+ optional :param , type : String , desc : 'new param'
21
+ end
22
+ get do
23
+ 'new'
24
+ end
25
+ end
26
+
27
+ Class . new ( Grape ::API ) do
28
+ mount new_api
29
+ mount old_api
30
+
31
+ add_swagger_documentation openapi_version : '3.0' , format : :json
32
+ end
33
+ end
34
+
35
+ context 'actual api request' do
36
+ subject do
37
+ get '/'
38
+ last_response . body
39
+ end
40
+
41
+ it 'returns data from new endpoint' do
42
+ is_expected . to eq 'new'
43
+ end
44
+ end
45
+
46
+ context 'api documentation' do
47
+ subject do
48
+ get '/swagger_doc'
49
+ JSON . parse ( last_response . body ) [ 'paths' ] [ '/' ] [ 'get' ]
50
+ end
51
+
52
+ it 'shows documentation from new endpoint' do
53
+ expect ( subject [ 'parameters' ] [ 0 ] [ 'description' ] ) . to eql ( 'new param' )
54
+ expect ( subject [ 'parameters' ] [ 0 ] [ 'schema' ] [ 'type' ] ) . to eql ( 'string' )
55
+ expect ( subject [ 'responses' ] [ '200' ] [ 'description' ] ) . to eql ( 'new message' )
56
+ end
57
+ end
58
+ end
You can’t perform that action at this time.
0 commit comments