summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/helpers/issues_helper.rb6
-rw-r--r--spec/helpers/issues_helper_spec.rb18
2 files changed, 19 insertions, 5 deletions
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 15f08fd5918..e8081d452c4 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -114,10 +114,14 @@ module IssuesHelper
end
def award_user_list(awards, current_user)
- names = awards.first(10).map do |award|
+ names = awards.map do |award|
award.user == current_user ? 'me' : award.user.name
end
+ # Take first 9 OR current user + first 9
+ current_user_name = names.delete('me')
+ names = names.first(9).insert(0, current_user_name).compact
+
names << "and #{awards.size - names.size} more." if awards.size > names.size
names.join(', ')
diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb
index 86955329124..c4281f8f591 100644
--- a/spec/helpers/issues_helper_spec.rb
+++ b/spec/helpers/issues_helper_spec.rb
@@ -65,16 +65,26 @@ describe IssuesHelper do
describe '#award_user_list' do
let!(:awards) { build_list(:award_emoji, 15) }
- it "returns a comma seperated list of 1-10 users" do
- expect(award_user_list(awards.first(10), nil)).to eq(awards.first(10).map { |a| a.user.name }.join(', '))
+ it "returns a comma seperated list of 1-9 users" do
+ expect(award_user_list(awards.first(9), nil)).to eq(awards.first(9).map { |a| a.user.name }.join(', '))
end
it "displays the current user's name as 'me'" do
expect(award_user_list(awards.first(1), awards[0].user)).to eq('me')
end
- it "truncates lists of larger than 10 users" do
- expect(award_user_list(awards, nil)).to eq(awards.first(10).map { |a| a.user.name }.join(', ') + ", and 5 more.")
+ it "truncates lists of larger than 9 users" do
+ expect(award_user_list(awards, nil)).to eq(awards.first(9).map { |a| a.user.name }.join(', ') + ", and 6 more.")
+ end
+
+ it "displays the current user in front of 0-9 other users" do
+ expect(award_user_list(awards, awards[0].user)).
+ to eq("me, " + awards[1..9].map { |a| a.user.name }.join(', ') + ", and 5 more.")
+ end
+
+ it "displays the current user in front regardless of position in the list" do
+ expect(award_user_list(awards, awards[12].user)).
+ to eq("me, " + awards[0..8].map { |a| a.user.name }.join(', ') + ", and 5 more.")
end
end