summaryrefslogtreecommitdiff
path: root/spec/models
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-15 00:08:48 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-15 00:08:48 +0000
commitb69f406585ff64b1c5140ebba775cc754fabb358 (patch)
tree9af7dfeb0c3f0f8db189a6e18c6be398a7729e2d /spec/models
parent866ca4e49ff74ffadf8e6f6ff663a168489c2aba (diff)
downloadgitlab-ce-b69f406585ff64b1c5140ebba775cc754fabb358.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models')
-rw-r--r--spec/models/label_spec.rb25
-rw-r--r--spec/models/user_spec.rb13
2 files changed, 38 insertions, 0 deletions
diff --git a/spec/models/label_spec.rb b/spec/models/label_spec.rb
index baf2cfeab0c..dc878c2d3c0 100644
--- a/spec/models/label_spec.rb
+++ b/spec/models/label_spec.rb
@@ -183,6 +183,31 @@ describe Label do
end
end
+ describe '.top_labels_by_target' do
+ let(:label) { create(:label) }
+ let(:popular_label) { create(:label) }
+ let(:merge_request1) { create(:merge_request) }
+ let(:merge_request2) { create(:merge_request) }
+
+ before do
+ merge_request1.labels = [label, popular_label]
+ merge_request2.labels = [popular_label]
+ end
+
+ it 'returns distinct labels, ordered by usage in the given target relation' do
+ top_labels = described_class.top_labels_by_target(MergeRequest.all)
+
+ expect(top_labels).to match_array([popular_label, label])
+ end
+
+ it 'excludes labels that are not assigned to any records in the given target relation' do
+ merge_requests = MergeRequest.where(id: merge_request2.id)
+ top_labels = described_class.top_labels_by_target(merge_requests)
+
+ expect(top_labels).to match_array([popular_label])
+ end
+ end
+
describe '.optionally_subscribed_by' do
let!(:user) { create(:user) }
let!(:label) { create(:label) }
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 90795e0a8e4..36ddb624cba 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -4200,4 +4200,17 @@ describe User, :do_not_mock_admin_mode do
expect(described_class.bots).to match_array([bot])
end
end
+
+ describe '#hook_attrs' do
+ it 'includes name, username, avatar_url, and email' do
+ user = create(:user)
+ user_attributes = {
+ name: user.name,
+ username: user.username,
+ avatar_url: user.avatar_url(only_path: false),
+ email: user.email
+ }
+ expect(user.hook_attrs).to eq(user_attributes)
+ end
+ end
end