diff options
author | Thong Kuah <tkuah@gitlab.com> | 2019-06-20 14:03:21 +1200 |
---|---|---|
committer | Thong Kuah <tkuah@gitlab.com> | 2019-07-01 17:10:35 +1200 |
commit | f06fbaf990adea9e2a219e48b5cda1bf17793457 (patch) | |
tree | ad87cc904601935520cfd67e1d23dda83673f691 | |
parent | 58f3a5615490aa30a5adda83ebb8ab66de891859 (diff) | |
download | gitlab-ce-63475-n-1-merge-requests-get_ci_environments_status.tar.gz |
Add failing test showing N+163475-n-1-merge-requests-get_ci_environments_status
We have an N+1 problem where N is environments.
-rw-r--r-- | spec/controllers/projects/merge_requests_controller_spec.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb index 0eca663a683..de82e005e4d 100644 --- a/spec/controllers/projects/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/merge_requests_controller_spec.rb @@ -878,6 +878,18 @@ describe Projects::MergeRequestsController do expect(control_count).to be <= 137 end + it 'has no N+1 issues for environments', :use_clean_rails_memory_store_caching, :request_store do + # First run to insert test data from lets, which does take up some 30 queries + get_ci_environments_status + + control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) { get_ci_environments_status }.count + + environment2 = create(:environment, project: forked) + create(:deployment, :succeed, environment: environment2, sha: sha, ref: 'master', deployable: build) + + expect { get_ci_environments_status }.not_to exceed_all_query_limit(control_count) + end + def get_ci_environments_status(extra_params = {}) params = { namespace_id: merge_request.project.namespace.to_param, |