summaryrefslogtreecommitdiff
path: root/spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb')
-rw-r--r--spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb13
1 files changed, 9 insertions, 4 deletions
diff --git a/spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb b/spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb
index eefe5bfc6c4..7d4268f74e9 100644
--- a/spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb
+++ b/spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb
@@ -7,8 +7,10 @@ RSpec.describe Preloaders::UserMaxAccessLevelInProjectsPreloader do
let_it_be(:project_1) { create(:project) }
let_it_be(:project_2) { create(:project) }
let_it_be(:project_3) { create(:project) }
+ let_it_be(:project_4) { create(:project) }
+ let_it_be(:project_5) { create(:project) }
- let(:projects) { [project_1, project_2, project_3] }
+ let(:projects) { [project_1, project_2, project_3, project_4, project_5] }
let(:query) { projects.each { |project| user.can?(:read_project, project) } }
before do
@@ -17,8 +19,11 @@ RSpec.describe Preloaders::UserMaxAccessLevelInProjectsPreloader do
end
context 'without preloader' do
- it 'runs N queries' do
- expect { query }.to make_queries(projects.size)
+ it 'runs some queries' do
+ # we have an existing N+1, one for each project for which user is not a member
+ # in this spec, project_3, project_4, project_5
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/362890
+ expect { query }.to make_queries(projects.size + 3)
end
end
@@ -34,7 +39,7 @@ RSpec.describe Preloaders::UserMaxAccessLevelInProjectsPreloader do
end
context 'when projects is an array of IDs' do
- let(:projects_arg) { [project_1.id, project_2.id, project_3.id] }
+ let(:projects_arg) { projects.map(&:id) }
it 'avoids N+1 queries' do
expect { query }.not_to make_queries