Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2019-07-08 16:07:21 +0300
committerLin Jen-Shin <godfat@godfat.org>2019-07-08 16:07:21 +0300
commit886521c7e563e04574fd803a22476f1158961fad (patch)
tree642291847190298979eff5e3e4a06ca43039b8d7 /spec/controllers/projects/merge_requests_controller_spec.rb
parentd14d1340c6d26a132e8db1f9b883aa87276b457c (diff)
parent56c129293578cb620daf1c19b1bc61cd18d9fa83 (diff)
Merge branch '63475-fix-n-1' into 'master'
Reduce N+1 queries in MergeRequestsController#ci_environment_status See merge request gitlab-org/gitlab-ce!30224
Diffstat (limited to 'spec/controllers/projects/merge_requests_controller_spec.rb')
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb16
1 files changed, 16 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..9878f88a395 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -878,6 +878,22 @@ describe Projects::MergeRequestsController do
expect(control_count).to be <= 137
end
+ it 'has no N+1 issues for environments', :request_store, retry: 0 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)
+
+ # TODO address the last 11 queries
+ # See https://gitlab.com/gitlab-org/gitlab-ce/issues/63952 (5 queries)
+ # And https://gitlab.com/gitlab-org/gitlab-ce/issues/64105 (6 queries)
+ leeway = 11
+ expect { get_ci_environments_status }.not_to exceed_all_query_limit(control_count + leeway)
+ end
+
def get_ci_environments_status(extra_params = {})
params = {
namespace_id: merge_request.project.namespace.to_param,