summaryrefslogtreecommitdiff
path: root/spec/features
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-12-20 19:54:36 +0000
committerSean McGivern <sean@mcgivern.me.uk>2016-12-20 19:54:36 +0000
commitd814533f690b4dba7d32006a97f2f696161fa564 (patch)
tree8931d54b586e4c4e0e39b85ad847b85bebe036ab /spec/features
parentb6d069c10fbf0ef13ad78bb22cfc965a278adcea (diff)
parent9c623e3e5d7434f2e30f7c389d13e5af4ede770a (diff)
downloadgitlab-ce-d814533f690b4dba7d32006a97f2f696161fa564.tar.gz
Merge branch 'jej-fix-n+1-queries-milestones-show' into 'master'
Fix N+1 queries on milestone show pages Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/25832 See merge request !8185
Diffstat (limited to 'spec/features')
-rw-r--r--spec/features/milestones/show_spec.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/features/milestones/show_spec.rb b/spec/features/milestones/show_spec.rb
new file mode 100644
index 00000000000..40b4dc63697
--- /dev/null
+++ b/spec/features/milestones/show_spec.rb
@@ -0,0 +1,26 @@
+require 'rails_helper'
+
+describe 'Milestone show', feature: true do
+ let(:user) { create(:user) }
+ let(:project) { create(:empty_project) }
+ let(:milestone) { create(:milestone, project: project) }
+ let(:labels) { create_list(:label, 2, project: project) }
+ let(:issue_params) { { project: project, assignee: user, author: user, milestone: milestone, labels: labels } }
+
+ before do
+ project.add_user(user, :developer)
+ login_as(user)
+ end
+
+ def visit_milestone
+ visit namespace_project_milestone_path(project.namespace, project, milestone)
+ end
+
+ it 'avoids N+1 database queries' do
+ create(:labeled_issue, issue_params)
+ control_count = ActiveRecord::QueryRecorder.new { visit_milestone }.count
+ create_list(:labeled_issue, 10, issue_params)
+
+ expect { visit_milestone }.not_to exceed_query_limit(control_count)
+ end
+end