summaryrefslogtreecommitdiff
path: root/spec/models/members/group_member_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/members/group_member_spec.rb')
-rw-r--r--spec/models/members/group_member_spec.rb32
1 files changed, 31 insertions, 1 deletions
diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb
index 9b5cce1aebf..fdb71b7ec7d 100644
--- a/spec/models/members/group_member_spec.rb
+++ b/spec/models/members/group_member_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
describe GroupMember do
context 'scopes' do
- describe '.count_users_by_group_id' do
+ shared_examples '.count_users_by_group_id' do
it 'counts users by group ID' do
user_1 = create(:user)
user_2 = create(:user)
@@ -20,6 +20,36 @@ describe GroupMember do
end
end
+ describe '.count_users_by_group_id with optimized_count_users_by_group_id feature flag on' do
+ before do
+ stub_feature_flags(optimized_count_users_by_group_id: true)
+ end
+
+ it_behaves_like '.count_users_by_group_id'
+
+ it 'does not JOIN users' do
+ scope = described_class.all
+ expect(scope).not_to receive(:joins).with(:user)
+
+ scope.count_users_by_group_id
+ end
+ end
+
+ describe '.count_users_by_group_id with optimized_count_users_by_group_id feature flag off' do
+ before do
+ stub_feature_flags(optimized_count_users_by_group_id: false)
+ end
+
+ it_behaves_like '.count_users_by_group_id'
+
+ it 'does JOIN users' do
+ scope = described_class.all
+ expect(scope).to receive(:joins).with(:user).and_call_original
+
+ scope.count_users_by_group_id
+ end
+ end
+
describe '.of_ldap_type' do
it 'returns ldap type users' do
group_member = create(:group_member, :ldap)