diff options
author | Nick Thomas <nick@gitlab.com> | 2019-08-19 14:45:24 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-08-19 14:45:24 +0000 |
commit | 3028cd687a256b593272248e50a3174811594e64 (patch) | |
tree | 5777662f6eae8e530912a8fad12bd23d2bc748fc /spec | |
parent | 4d4e88df01554336daf245a68653b80ca00989a5 (diff) | |
parent | f53112de5931144ac74819f87c227f06e115ba58 (diff) | |
download | gitlab-ce-3028cd687a256b593272248e50a3174811594e64.tar.gz |
Merge branch '39-count-unique-users-for-more-accurate-smau-reporting' into 'master'
Allow UsageData.count to use count_by:
See merge request gitlab-org/gitlab-ce!30770
Diffstat (limited to 'spec')
-rw-r--r-- | spec/factories/group_members.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/usage_data_spec.rb | 6 | ||||
-rw-r--r-- | spec/models/members/group_member_spec.rb | 36 |
3 files changed, 33 insertions, 13 deletions
diff --git a/spec/factories/group_members.rb b/spec/factories/group_members.rb index 8dab6c71b06..4c875935d82 100644 --- a/spec/factories/group_members.rb +++ b/spec/factories/group_members.rb @@ -20,5 +20,9 @@ FactoryBot.define do "email#{n}@email.com" end end + + trait(:ldap) do + ldap true + end end end diff --git a/spec/lib/gitlab/usage_data_spec.rb b/spec/lib/gitlab/usage_data_spec.rb index 9bbd9394d57..64254674157 100644 --- a/spec/lib/gitlab/usage_data_spec.rb +++ b/spec/lib/gitlab/usage_data_spec.rb @@ -266,6 +266,12 @@ describe Gitlab::UsageData do expect(described_class.count(relation)).to eq(1) end + it 'returns the count for count_by when provided' do + allow(relation).to receive(:count).with(:creator_id).and_return(2) + + expect(described_class.count(relation, count_by: :creator_id)).to eq(2) + end + it 'returns the fallback value when counting fails' do allow(relation).to receive(:count).and_raise(ActiveRecord::StatementInvalid.new('')) diff --git a/spec/models/members/group_member_spec.rb b/spec/models/members/group_member_spec.rb index ebb0bfca369..ad7dfac87af 100644 --- a/spec/models/members/group_member_spec.rb +++ b/spec/models/members/group_member_spec.rb @@ -3,19 +3,29 @@ 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) + context 'scopes' 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 '.of_ldap_type' do + it 'returns ldap type users' do + group_member = create(:group_member, :ldap) + + expect(described_class.of_ldap_type).to eq([group_member]) + end end end |