diff options
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.rb | 13 |
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 |