summaryrefslogtreecommitdiff
path: root/spec/models/members
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2019-03-22 15:51:14 +0000
committerSean McGivern <sean@gitlab.com>2019-03-25 12:12:44 +0000
commitc5f9b2be826c05e5f06d424f5c110976ad0b68c4 (patch)
tree6c7d4e5f2beb1b4d942bfc409a8b1e44563b35ad /spec/models/members
parent05c6de9867f25aa5e6373d7b32d925572bdb4686 (diff)
downloadgitlab-ce-c5f9b2be826c05e5f06d424f5c110976ad0b68c4.tar.gz
Remove N+1 queries from users autocomplete
Both of these were related to groups: 1. We need to preload routes (using the `with_route` scope) if we're going to get the group's path. 2. We were counting each group's members separately. They're in the same commit because the spec for N+1 detection wouldn't pass with only one of these fixes.
Diffstat (limited to 'spec/models/members')
-rw-r--r--spec/models/members/group_member_spec.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb
index a3451c67bd8..bc937368cff 100644
--- a/spec/models/members/group_member_spec.rb
+++ b/spec/models/members/group_member_spec.rb
@@ -1,6 +1,22 @@
require 'spec_helper'
describe GroupMember do
+ describe '.count_users_by_group_id' do
+ it 'counts users by group ID' do
+ user_1 = create(:user)
+ user_2 = create(:user)
+ group_1 = create(:group)
+ group_2 = create(:group)
+
+ group_1.add_owner(user_1)
+ group_1.add_owner(user_2)
+ group_2.add_owner(user_1)
+
+ expect(described_class.count_users_by_group_id).to eq(group_1.id => 2,
+ group_2.id => 1)
+ end
+ end
+
describe '.access_level_roles' do
it 'returns Gitlab::Access.options_with_owner' do
expect(described_class.access_level_roles).to eq(Gitlab::Access.options_with_owner)