diff options
Diffstat (limited to 'spec/models/members/group_member_spec.rb')
-rw-r--r-- | spec/models/members/group_member_spec.rb | 32 |
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) |