Skip to content
Snippets Groups Projects
Commit b4944c18 authored by Luke Duncalfe's avatar Luke Duncalfe :two:
Browse files

Remove design_management_todos_api feature flag

parent 2e08c928
No related branches found
No related tags found
5 merge requests!158514Fix CodeReviewMetrics worker failure with kwargs,!27224Update stable branch yorick/test-release-tools for automatic RC 12.9.0-rc20200313145923.ee.0,!26962WIP: Allow GMA groups to specify their own PAT expiry setting (2/2),!26342Remove design_management_todos_api feature flag,!24639WIP POC: Ss/realtime 2
......@@ -18,16 +18,6 @@ def epic
def authorize_can_read!
authorize!(:read_epic, epic)
end
override :find_todos
def find_todos
todos = super
return todos if ::Feature.enabled?(:design_management_todos_api, default_enabled: true)
# Exclude Design Todos if the feature is disabled
todos.where.not(target_type: ::DesignManagement::Design.name) # rubocop: disable CodeReuse/ActiveRecord
end
end
resource :groups, requirements: ::API::API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
......
......@@ -75,39 +75,24 @@ def api_request
get api('/todos', personal_access_token: pat)
end
context 'when the feature is enabled' do
before do
api_request
end
it_behaves_like 'an endpoint that responds with success'
before do
api_request
end
it 'avoids N+1 queries', :request_store do
control = ActiveRecord::QueryRecorder.new { api_request }
it_behaves_like 'an endpoint that responds with success'
create_todo_for_mentioned_in_design
it 'avoids N+1 queries', :request_store do
control = ActiveRecord::QueryRecorder.new { api_request }
expect { api_request }.not_to exceed_query_limit(control)
end
create_todo_for_mentioned_in_design
it 'includes the Design Todo in the response' do
expect(json_response).to include(
a_hash_including('id' => design_todo.id)
)
end
expect { api_request }.not_to exceed_query_limit(control)
end
context 'when the feature is disabled' do
before do
stub_feature_flags(design_management_todos_api: false)
api_request
end
it_behaves_like 'an endpoint that responds with success'
it 'does not include the Design Todo in the response' do
expect(json_response).to be_empty
end
it 'includes the Design Todo in the response' do
expect(json_response).to include(
a_hash_including('id' => design_todo.id)
)
end
end
end
......
......@@ -13,13 +13,6 @@ class Todos < Grape::API
'issues' => ->(iid) { find_project_issue(iid) }
}.freeze
helpers do
# EE::API::Todos would override this method
def find_todos
TodosFinder.new(current_user, params).execute
end
end
params do
requires :id, type: String, desc: 'The ID of a project'
end
......@@ -48,6 +41,10 @@ def find_todos
resource :todos do
helpers do
def find_todos
TodosFinder.new(current_user, params).execute
end
def issuable_and_awardable?(type)
obj_type = Object.const_get(type, false)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment