diff --git a/lib/grape-swagger/rake/oapi_tasks.rb b/lib/grape-swagger/rake/oapi_tasks.rb index 20a35c76..18004a00 100644 --- a/lib/grape-swagger/rake/oapi_tasks.rb +++ b/lib/grape-swagger/rake/oapi_tasks.rb @@ -95,7 +95,7 @@ def make_request(url) def urls_for(api_class) api_class.routes .map(&:path) - .select { |e| e.include?('doc') } + .grep(/#{GrapeSwagger::DocMethods.class_variable_get(:@@mount_path)}\(\.json\)$/) .reject { |e| e.include?(':name') } .map { |e| format_path(e) } .map { |e| [e, ENV.fetch('resource', nil)].join('/').chomp('/') } diff --git a/spec/lib/oapi_tasks_spec.rb b/spec/lib/oapi_tasks_spec.rb index 38bdca70..7e41ab1a 100644 --- a/spec/lib/oapi_tasks_spec.rb +++ b/spec/lib/oapi_tasks_spec.rb @@ -14,6 +14,10 @@ class Item < Grape::API namespace :otherItem do get '/' end + + namespace :my_doc do + get '/' + end end class Base < Grape::API @@ -115,7 +119,7 @@ class Base < Grape::API end it 'returns complete doc' do - expect(response['paths'].length).to eql 2 + expect(response['paths'].length).to eql 3 end end end @@ -132,6 +136,15 @@ class Base < Grape::API end end + describe '#urls_for' do + require 'pry' + describe 'match only the path to mount_path' do + it do + expect(subject.send(:urls_for, api_class)).to match_array ['/api/swagger_doc'] + end + end + end + describe '#file' do describe 'no store given' do it 'returns swagger_doc.json' do