diff --git a/spec/requests/api/navigation_spec.rb b/spec/requests/api/navigation_spec.rb new file mode 100644 index 00000000..9064c7ef --- /dev/null +++ b/spec/requests/api/navigation_spec.rb @@ -0,0 +1,25 @@ +require 'swagger_helper' + +describe 'Navigation API', type: :request do + include ApiHelper + + path '/navigation' do + get 'navigation' do + tags 'General' + produces 'application/json' + let(:api_scopes) { ['config:user'] } + + response '200', 'success' do + schema type: :object, properties: { + navigation: { + '$ref' => '#/components/schemas/Navigation' + } + } + + run_test! + end + + it_handles_invalid_token + end + end +end diff --git a/spec/swagger_helper.rb b/spec/swagger_helper.rb index dfd4b187..2380133e 100644 --- a/spec/swagger_helper.rb +++ b/spec/swagger_helper.rb @@ -16,7 +16,7 @@ RSpec.configure do |config| # the root example_group in your specs, e.g. describe '...', swagger_doc: 'v2/swagger.json' config.swagger_docs = { 'v1/swagger.yaml' => { - openapi: '3.0.1', + openapi: '3.0.3', info: { title: 'API V1', version: 'v1' @@ -24,6 +24,27 @@ RSpec.configure do |config| paths: {}, components: { schemas: { + Navigation: { + type: :array, + items: { + type: :object, + properties: { + name: { + type: :string, + description: 'title' + }, + url: { + type: :string, + description: 'link' + }, + items: { + '$ref': "#/components/schemas/Navigation" + } + }, + required: ['name'], + minProperties: 2 # name+url or name+items + } + }, Error: { type: :object, properties: {