grape-swagger 0.20.2 → 0.20.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -3
  3. data/.rubocop_todo.yml +43 -33
  4. data/.travis.yml +22 -13
  5. data/CHANGELOG.md +29 -53
  6. data/Gemfile +1 -1
  7. data/README.md +24 -24
  8. data/example/api/endpoints.rb +28 -29
  9. data/example/api/entities.rb +1 -1
  10. data/example/config.ru +5 -7
  11. data/grape-swagger.gemspec +1 -1
  12. data/lib/grape-swagger.rb +9 -6
  13. data/lib/grape-swagger/doc_methods.rb +1 -1
  14. data/lib/grape-swagger/doc_methods/extensions.rb +3 -3
  15. data/lib/grape-swagger/doc_methods/headers.rb +1 -1
  16. data/lib/grape-swagger/doc_methods/move_params.rb +25 -16
  17. data/lib/grape-swagger/doc_methods/operation_id.rb +2 -2
  18. data/lib/grape-swagger/doc_methods/parse_params.rb +12 -5
  19. data/lib/grape-swagger/doc_methods/path_string.rb +1 -1
  20. data/lib/grape-swagger/doc_methods/status_codes.rb +3 -1
  21. data/lib/grape-swagger/doc_methods/tag_name_description.rb +1 -1
  22. data/lib/grape-swagger/endpoint.rb +33 -46
  23. data/lib/grape-swagger/grape/route.rb +16 -0
  24. data/lib/grape-swagger/version.rb +1 -1
  25. data/spec/issues/403_versions_spec.rb +158 -0
  26. data/spec/lib/data_type_spec.rb +9 -10
  27. data/spec/lib/endpoint_spec.rb +1 -2
  28. data/spec/lib/extensions_spec.rb +44 -40
  29. data/spec/lib/move_params_spec.rb +113 -93
  30. data/spec/lib/operation_id_spec.rb +42 -12
  31. data/spec/lib/optional_object_spec.rb +3 -4
  32. data/spec/lib/path_string_spec.rb +2 -2
  33. data/spec/lib/produces_consumes_spec.rb +64 -53
  34. data/spec/markdown/redcarpet_adapter_spec.rb +1 -1
  35. data/spec/spec_helper.rb +1 -1
  36. data/spec/support/api_swagger_v2_result.rb +122 -128
  37. data/spec/support/namespace_tags.rb +17 -19
  38. data/spec/support/the_api_entities.rb +1 -3
  39. data/spec/support/the_paths_definitions.rb +95 -85
  40. data/spec/swagger_v2/api_swagger_v2_definitions-models_spec.rb +1 -1
  41. data/spec/swagger_v2/api_swagger_v2_detail_spec.rb +19 -19
  42. data/spec/swagger_v2/api_swagger_v2_extensions_spec.rb +21 -21
  43. data/spec/swagger_v2/api_swagger_v2_format-content_type_spec.rb +34 -32
  44. data/spec/swagger_v2/api_swagger_v2_global_configuration_spec.rb +5 -7
  45. data/spec/swagger_v2/api_swagger_v2_headers_spec.rb +19 -18
  46. data/spec/swagger_v2/api_swagger_v2_hide_documentation_path_spec.rb +9 -10
  47. data/spec/swagger_v2/api_swagger_v2_mounted_spec.rb +21 -24
  48. data/spec/swagger_v2/api_swagger_v2_param_type_body_nested_spec.rb +90 -92
  49. data/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb +54 -54
  50. data/spec/swagger_v2/api_swagger_v2_param_type_spec.rb +65 -57
  51. data/spec/swagger_v2/api_swagger_v2_request_params_fix_spec.rb +17 -14
  52. data/spec/swagger_v2/api_swagger_v2_response_spec.rb +79 -123
  53. data/spec/swagger_v2/api_swagger_v2_spec.rb +33 -34
  54. data/spec/swagger_v2/api_swagger_v2_type-format_spec.rb +32 -36
  55. data/spec/swagger_v2/boolean_params_spec.rb +1 -1
  56. data/spec/swagger_v2/default_api_spec.rb +26 -29
  57. data/spec/swagger_v2/description_not_initialized.rb +3 -3
  58. data/spec/swagger_v2/float_api_spec.rb +1 -1
  59. data/spec/swagger_v2/form_params_spec.rb +4 -4
  60. data/spec/swagger_v2/hide_api_spec.rb +48 -51
  61. data/spec/swagger_v2/host.rb +1 -1
  62. data/spec/swagger_v2/mounted_target_class_spec.rb +31 -33
  63. data/spec/swagger_v2/namespace_tags_prefix_spec.rb +23 -21
  64. data/spec/swagger_v2/namespace_tags_spec.rb +23 -20
  65. data/spec/swagger_v2/param_type_spec.rb +5 -6
  66. data/spec/swagger_v2/param_values_spec.rb +31 -37
  67. data/spec/swagger_v2/params_array_spec.rb +17 -15
  68. data/spec/swagger_v2/params_hash_spec.rb +17 -15
  69. data/spec/swagger_v2/params_nested_spec.rb +12 -10
  70. data/spec/swagger_v2/reference_entity.rb +9 -9
  71. data/spec/swagger_v2/response_model_spec.rb +58 -62
  72. data/spec/swagger_v2/simple_mounted_api_spec.rb +179 -147
  73. metadata +5 -10
  74. data/spec/params_entity_spec.rb +0 -49
@@ -1,11 +1,9 @@
1
- RSpec.shared_context "namespace example" do
1
+ RSpec.shared_context 'namespace example' do
2
2
  before :all do
3
3
  module TheApi
4
-
5
4
  class CustomType; end
6
5
 
7
6
  class NamespaceApi < Grape::API
8
-
9
7
  namespace :hudson do
10
8
  desc 'Document root'
11
9
  get '/' do
@@ -14,7 +12,7 @@ RSpec.shared_context "namespace example" do
14
12
 
15
13
  namespace :colorado do
16
14
  desc 'This gets something.',
17
- notes: '_test_'
15
+ notes: '_test_'
18
16
 
19
17
  get '/simple' do
20
18
  { bla: 'something' }
@@ -23,7 +21,7 @@ RSpec.shared_context "namespace example" do
23
21
 
24
22
  namespace :colorado do
25
23
  desc 'This gets something for URL using - separator.',
26
- notes: '_test_'
24
+ notes: '_test_'
27
25
 
28
26
  get '/simple-test' do
29
27
  { bla: 'something' }
@@ -32,14 +30,14 @@ RSpec.shared_context "namespace example" do
32
30
 
33
31
  namespace :thames do
34
32
  desc 'this gets something else',
35
- headers: {
36
- 'XAuthToken' => { description: 'A required header.', required: true },
37
- 'XOtherHeader' => { description: 'An optional header.', required: false }
38
- },
39
- http_codes: [
40
- { code: 403, message: 'invalid pony' },
41
- { code: 405, message: 'no ponies left!' }
42
- ]
33
+ headers: {
34
+ 'XAuthToken' => { description: 'A required header.', required: true },
35
+ 'XOtherHeader' => { description: 'An optional header.', required: false }
36
+ },
37
+ http_codes: [
38
+ { code: 403, message: 'invalid pony' },
39
+ { code: 405, message: 'no ponies left!' }
40
+ ]
43
41
 
44
42
  get '/simple_with_headers' do
45
43
  { bla: 'something_else' }
@@ -48,9 +46,9 @@ RSpec.shared_context "namespace example" do
48
46
 
49
47
  namespace :niles do
50
48
  desc 'this takes an array of parameters',
51
- params: {
52
- 'items[]' => { description: 'array of items', is_array: true }
53
- }
49
+ params: {
50
+ 'items[]' => { description: 'array of items', is_array: true }
51
+ }
54
52
 
55
53
  post '/items' do
56
54
  {}
@@ -59,9 +57,9 @@ RSpec.shared_context "namespace example" do
59
57
 
60
58
  namespace :niles do
61
59
  desc 'this uses a custom parameter',
62
- params: {
63
- 'custom' => { type: CustomType, description: 'array of items', is_array: true }
64
- }
60
+ params: {
61
+ 'custom' => { type: CustomType, description: 'array of items', is_array: true }
62
+ }
65
63
 
66
64
  get '/custom' do
67
65
  {}
@@ -1,4 +1,4 @@
1
- RSpec.shared_context "the api entities" do
1
+ RSpec.shared_context 'the api entities' do
2
2
  before :all do
3
3
  module TheApi
4
4
  module Entities
@@ -47,6 +47,4 @@ RSpec.shared_context "the api entities" do
47
47
  end
48
48
  end
49
49
  end
50
-
51
-
52
50
  end
@@ -1,94 +1,104 @@
1
- RSpec.shared_context "the api paths/defs" do
2
- let(:paths) {{
3
- "/in_body" => {
4
- post: {
5
- produces: ["application/json"],
6
- consumes: ["application/json"],
7
- parameters: [
8
- {in: "body", name: "in_body_1", description: "in_body_1", type: "integer", format: "int32", required: true},
9
- {in: "body", name: "in_body_2", description: "in_body_2", type: "string", required: false},
10
- {in: "body", name: "in_body_3", description: "in_body_3", type: "string", required: false}
11
- ],
12
- responses: {201 => {description: "post in body /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
13
- tags: ["in_body"],
14
- operationId: "postInBody"
15
- },
16
- get: {
17
- produces: ["application/json"],
18
- responses: {200 => {description: "get in path /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
19
- tags: ["in_body"],
20
- operationId: "getInBody"
21
- }
22
- },
23
- "/in_body/{key}" => {
24
- put: {
25
- produces: ["application/json"],
26
- consumes: ["application/json"],
27
- parameters: [
28
- {in: "path", name: "key", description: nil, type: "integer", format: "int32", required: true},
29
- {in: "body", name: "in_body_1", description: "in_body_1", type: "integer", format: "int32", required: true},
30
- {in: "body", name: "in_body_2", description: "in_body_2", type: "string", required: false},
31
- {in: "body", name: "in_body_3", description: "in_body_3", type: "string", required: false}
32
- ],
33
- responses: {200 => {description: "put in body /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
34
- tags: ["in_body"],
35
- operationId: "putInBodyKey"
1
+ RSpec.shared_context 'the api paths/defs' do
2
+ let(:paths) do
3
+ {
4
+ '/in_body' => {
5
+ post: {
6
+ produces: ['application/json'],
7
+ consumes: ['application/json'],
8
+ parameters: [
9
+ { in: 'body', name: 'in_body_1', description: 'in_body_1', type: 'integer', format: 'int32', required: true },
10
+ { in: 'body', name: 'in_body_2', description: 'in_body_2', type: 'string', required: false },
11
+ { in: 'body', name: 'in_body_3', description: 'in_body_3', type: 'string', required: false }
12
+ ],
13
+ responses: { 201 => { description: 'post in body /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
14
+ tags: ['in_body'],
15
+ operationId: 'postInBody'
16
+ },
17
+ get: {
18
+ produces: ['application/json'],
19
+ responses: { 200 => { description: 'get in path /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
20
+ tags: ['in_body'],
21
+ operationId: 'getInBody'
22
+ }
36
23
  },
37
- get: {
38
- produces: ["application/json"],
24
+ '/in_body/{key}' => {
25
+ put: {
26
+ produces: ['application/json'],
27
+ consumes: ['application/json'],
28
+ parameters: [
29
+ { in: 'path', name: 'key', description: nil, type: 'integer', format: 'int32', required: true },
30
+ { in: 'body', name: 'in_body_1', description: 'in_body_1', type: 'integer', format: 'int32', required: true },
31
+ { in: 'body', name: 'in_body_2', description: 'in_body_2', type: 'string', required: false },
32
+ { in: 'body', name: 'in_body_3', description: 'in_body_3', type: 'string', required: false }
33
+ ],
34
+ responses: { 200 => { description: 'put in body /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
35
+ tags: ['in_body'],
36
+ operationId: 'putInBodyKey'
37
+ },
38
+ get: {
39
+ produces: ['application/json'],
40
+ parameters: [
41
+ { in: 'path', name: 'key', description: nil, type: 'integer', format: 'int32', required: true }
42
+ ],
43
+ responses: { 200 => { description: 'get in path /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
44
+ tags: ['in_body'],
45
+ operationId: 'getInBodyKey'
46
+ } }
47
+ }
48
+ end
49
+
50
+ let(:found_path) do
51
+ {
52
+ post: {
53
+ produces: ['application/json'],
54
+ consumes: ['application/json'],
39
55
  parameters: [
40
- {in: "path", name: "key", description: nil, type: "integer", format: "int32", required: true}
56
+ { in: 'body', name: 'in_body_1', description: 'in_body_1', type: 'integer', format: 'int32', required: true },
57
+ { in: 'body', name: 'in_body_2', description: 'in_body_2', type: 'string', required: false },
58
+ { in: 'body', name: 'in_body_3', description: 'in_body_3', type: 'string', required: false }
41
59
  ],
42
- responses: {200 => {description: "get in path /wo entity", schema: {"$ref" => "#/definitions/InBody"}}},
43
- tags: ["in_body"],
44
- operationId: "getInBodyKey"
45
- }}
46
- }}
60
+ responses: { 201 => { description: 'post in body /wo entity', schema: { '$ref' => '#/definitions/InBody' } } },
61
+ tags: ['in_body'],
62
+ operationId: 'postInBody'
63
+ } }
64
+ end
47
65
 
48
- let(:found_path) {{
49
- post: {
50
- produces: ["application/json"],
51
- consumes: ["application/json"],
52
- parameters: [
53
- {in: "body", name: "in_body_1", description: "in_body_1", type: "integer", format: "int32", required: true},
54
- {in: "body", name: "in_body_2", description: "in_body_2", type: "string", required: false},
55
- {in: "body", name: "in_body_3", description: "in_body_3", type: "string", required: false}
56
- ],
57
- responses: {201 => {description: "post in body /wo entity", schema: {"$ref"=>"#/definitions/InBody"}}},
58
- tags: ["in_body"],
59
- operationId: "postInBody"
60
- }}}
66
+ let(:definitions) do
67
+ {
68
+ 'InBody' => {
69
+ type: 'object',
70
+ properties: {
71
+ in_body_1: { type: 'integer', format: 'int32' },
72
+ in_body_2: { type: 'string' },
73
+ in_body_3: { type: 'string' },
74
+ key: { type: 'integer', format: 'int32' }
75
+ } } }
76
+ end
61
77
 
62
- let(:definitions) {{
63
- "InBody" => {
64
- type: "object",
78
+ let(:expected_post_defs) do
79
+ {
80
+ type: 'object',
65
81
  properties: {
66
- in_body_1: {type: "integer", format: "int32"},
67
- in_body_2: {type: "string"},
68
- in_body_3: {type: "string"},
69
- key: {type: "integer", format: "int32"}
70
- }}}}
71
-
72
- let(:expected_post_defs) {{
73
- type: "object",
74
- properties: {
75
- in_body_1: {type: "integer", format: "int32", description: "in_body_1"},
76
- in_body_2: {type: "string", description: "in_body_2"},
77
- in_body_3: {type: "string", description: "in_body_3"}
78
- },
79
- :required=>[:in_body_1]
80
- }}
82
+ in_body_1: { type: 'integer', format: 'int32', description: 'in_body_1' },
83
+ in_body_2: { type: 'string', description: 'in_body_2' },
84
+ in_body_3: { type: 'string', description: 'in_body_3' }
85
+ },
86
+ required: [:in_body_1]
87
+ }
88
+ end
81
89
 
82
- let(:expected_put_defs) {{
83
- type: "object",
84
- properties: {
85
- in_body_1: {type: "integer", format: "int32", description: "in_body_1"},
86
- in_body_2: {type: "string", description: "in_body_2"},
87
- in_body_3: {type: "string", description: "in_body_3"},
88
- key: {type: "integer", format: "int32", readOnly: true}
89
- },
90
- :required=>[:in_body_1]
91
- }}
90
+ let(:expected_put_defs) do
91
+ {
92
+ type: 'object',
93
+ properties: {
94
+ in_body_1: { type: 'integer', format: 'int32', description: 'in_body_1' },
95
+ in_body_2: { type: 'string', description: 'in_body_2' },
96
+ in_body_3: { type: 'string', description: 'in_body_3' },
97
+ key: { type: 'integer', format: 'int32', readOnly: true }
98
+ },
99
+ required: [:in_body_1]
100
+ }
101
+ end
92
102
 
93
- let(:expected_path) {[]}
103
+ let(:expected_path) { [] }
94
104
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'definitions/models' do
4
- include_context "the api entities"
4
+ include_context 'the api entities'
5
5
 
6
6
  before :all do
7
7
  module TheApi
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  def details
6
- <<-DETAILS
6
+ <<-DETAILS
7
7
  # Burgers in Heaven
8
8
 
9
9
  > A burger doesn't come for free
@@ -23,8 +23,8 @@ DETAILS
23
23
  end
24
24
 
25
25
  describe 'details' do
26
- describe "take deatils as it is" do
27
- include_context "the api entities"
26
+ describe 'take deatils as it is' do
27
+ include_context 'the api entities'
28
28
 
29
29
  before :all do
30
30
  module TheApi
@@ -32,20 +32,20 @@ describe 'details' do
32
32
  format :json
33
33
 
34
34
  desc 'This returns something',
35
- detail: 'detailed description of the route',
36
- entity: Entities::UseResponse,
37
- failure: [{code: 400, model: Entities::ApiError}]
35
+ detail: 'detailed description of the route',
36
+ entity: Entities::UseResponse,
37
+ failure: [{ code: 400, model: Entities::ApiError }]
38
38
  get '/use_detail' do
39
- { "declared_params" => declared(params) }
39
+ { 'declared_params' => declared(params) }
40
40
  end
41
41
 
42
42
  desc 'This returns something' do
43
43
  detail 'detailed description of the route inside the `desc` block'
44
44
  entity Entities::UseResponse
45
- failure [{code: 400, model: Entities::ApiError}]
45
+ failure [{ code: 400, model: Entities::ApiError }]
46
46
  end
47
47
  get '/use_detail_block' do
48
- { "declared_params" => declared(params) }
48
+ { 'declared_params' => declared(params) }
49
49
  end
50
50
 
51
51
  add_swagger_documentation
@@ -74,7 +74,7 @@ describe 'details' do
74
74
  end
75
75
 
76
76
  describe 'details, convert markdown with kramdown' do
77
- include_context "the api entities"
77
+ include_context 'the api entities'
78
78
 
79
79
  before :all do
80
80
  module TheApi
@@ -82,11 +82,11 @@ describe 'details' do
82
82
  format :json
83
83
 
84
84
  desc 'This returns something',
85
- detail: details,
86
- entity: Entities::UseResponse,
87
- failure: [{code: 400, model: Entities::ApiError}]
85
+ detail: details,
86
+ entity: Entities::UseResponse,
87
+ failure: [{ code: 400, model: Entities::ApiError }]
88
88
  get '/use_gfm_detail' do
89
- { "declared_params" => declared(params) }
89
+ { 'declared_params' => declared(params) }
90
90
  end
91
91
 
92
92
  add_swagger_documentation markdown: GrapeSwagger::Markdown::KramdownAdapter.new
@@ -112,7 +112,7 @@ describe 'details' do
112
112
  end
113
113
 
114
114
  describe 'details, convert markdown with redcarpet', unless: RUBY_PLATFORM.eql?('java') do
115
- include_context "the api entities"
115
+ include_context 'the api entities'
116
116
 
117
117
  before :all do
118
118
  module TheApi
@@ -120,11 +120,11 @@ describe 'details' do
120
120
  format :json
121
121
 
122
122
  desc 'This returns something',
123
- detail: details,
124
- entity: Entities::UseResponse,
125
- failure: [{code: 400, model: Entities::ApiError}]
123
+ detail: details,
124
+ entity: Entities::UseResponse,
125
+ failure: [{ code: 400, model: Entities::ApiError }]
126
126
  get '/use_gfm_rc_detail' do
127
- { "declared_params" => declared(params) }
127
+ { 'declared_params' => declared(params) }
128
128
  end
129
129
 
130
130
  add_swagger_documentation markdown: GrapeSwagger::Markdown::RedcarpetAdapter.new
@@ -1,50 +1,50 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'extension' do
4
- include_context "the api entities"
4
+ include_context 'the api entities'
5
5
 
6
6
  before :all do
7
7
  module TheApi
8
8
  class ExtensionsApi < Grape::API
9
9
  format :json
10
10
 
11
- route_setting :x_path, { some: 'stuff' }
11
+ route_setting :x_path, some: 'stuff'
12
12
 
13
13
  desc 'This returns something with extension on path level',
14
- params: Entities::UseResponse.documentation,
15
- failure: [{code: 400, message: 'NotFound', model: Entities::ApiError}]
14
+ params: Entities::UseResponse.documentation,
15
+ failure: [{ code: 400, message: 'NotFound', model: Entities::ApiError }]
16
16
  get '/path_extension' do
17
- { "declared_params" => declared(params) }
17
+ { 'declared_params' => declared(params) }
18
18
  end
19
19
 
20
20
  desc 'This returns something with extension on verb level',
21
- params: Entities::UseResponse.documentation,
22
- failure: [{code: 400, message: 'NotFound', model: Entities::ApiError}],
23
- x: { some: 'stuff' }
21
+ params: Entities::UseResponse.documentation,
22
+ failure: [{ code: 400, message: 'NotFound', model: Entities::ApiError }],
23
+ x: { some: 'stuff' }
24
24
  params do
25
25
  requires :id, type: Integer
26
26
  end
27
27
  get '/verb_extension' do
28
- { "declared_params" => declared(params) }
28
+ { 'declared_params' => declared(params) }
29
29
  end
30
30
 
31
- route_setting :x_def, { for: 200, some: 'stuff' }
31
+ route_setting :x_def, for: 200, some: 'stuff'
32
32
 
33
33
  desc 'This returns something with extension on definition level',
34
- params: Entities::ResponseItem.documentation,
35
- success: Entities::ResponseItem,
36
- failure: [{code: 400, message: 'NotFound', model: Entities::ApiError}]
34
+ params: Entities::ResponseItem.documentation,
35
+ success: Entities::ResponseItem,
36
+ failure: [{ code: 400, message: 'NotFound', model: Entities::ApiError }]
37
37
  get '/definitions_extension' do
38
- { "declared_params" => declared(params) }
38
+ { 'declared_params' => declared(params) }
39
39
  end
40
40
 
41
41
  route_setting :x_def, [{ for: 422, other: 'stuff' }, { for: 200, some: 'stuff' }]
42
42
 
43
43
  desc 'This returns something with extension on definition level',
44
- success: Entities::OtherItem,
45
- failure: [{code: 422, message: 'NotFound', model: Entities::SecondApiError}]
44
+ success: Entities::OtherItem,
45
+ failure: [{ code: 422, message: 'NotFound', model: Entities::SecondApiError }]
46
46
  get '/multiple_definitions_extension' do
47
- { "declared_params" => declared(params) }
47
+ { 'declared_params' => declared(params) }
48
48
  end
49
49
 
50
50
  add_swagger_documentation
@@ -56,7 +56,7 @@ describe 'extension' do
56
56
  TheApi::ExtensionsApi
57
57
  end
58
58
 
59
- describe "extension on path level" do
59
+ describe 'extension on path level' do
60
60
  subject do
61
61
  get '/swagger_doc/path_extension'
62
62
  JSON.parse(last_response.body)
@@ -68,7 +68,7 @@ describe 'extension' do
68
68
  end
69
69
  end
70
70
 
71
- describe "extension on verb level" do
71
+ describe 'extension on verb level' do
72
72
  subject do
73
73
  get '/swagger_doc/verb_extension'
74
74
  JSON.parse(last_response.body)
@@ -80,7 +80,7 @@ describe 'extension' do
80
80
  end
81
81
  end
82
82
 
83
- describe "extension on definition level" do
83
+ describe 'extension on definition level' do
84
84
  subject do
85
85
  get '/swagger_doc/definitions_extension'
86
86
  JSON.parse(last_response.body)
@@ -93,7 +93,7 @@ describe 'extension' do
93
93
  end
94
94
  end
95
95
 
96
- describe "extension on definition level" do
96
+ describe 'extension on definition level' do
97
97
  subject do
98
98
  get '/swagger_doc/multiple_definitions_extension'
99
99
  JSON.parse(last_response.body)