Merge branch '62591-fix-milestone-due-date-today-wording' into 'master'

Fix wording on milestone due date today

Closes #62591

See merge request gitlab-org/gitlab-ce!32096
This commit is contained in:
Nick Thomas 2019-09-03 13:49:16 +00:00
commit bc26349b76
3 changed files with 34 additions and 5 deletions

View File

@ -46,12 +46,14 @@ module EntityDateHelper
# If start date is provided and elapsed, with no due date, it returns "# days elapsed"
def remaining_days_in_words(due_date, start_date = nil)
if due_date&.past?
content_tag(:strong, 'Past due')
content_tag(:strong, _('Past due'))
elsif due_date&.today?
content_tag(:strong, _('Today'))
elsif start_date&.future?
content_tag(:strong, 'Upcoming')
content_tag(:strong, _('Upcoming'))
elsif due_date
is_upcoming = (due_date - Date.today).to_i > 0
time_ago = time_ago_in_words(due_date)
time_ago = distance_of_time_in_words(due_date, Date.today)
# https://gitlab.com/gitlab-org/gitlab-ce/issues/49440
#
@ -59,8 +61,8 @@ module EntityDateHelper
# of the string instead of piecewise translations.
content = time_ago
.gsub(/\d+/) { |match| "<strong>#{match}</strong>" }
.remove("about ")
remaining_or_ago = is_upcoming ? _("remaining") : _("ago")
.remove('about ')
remaining_or_ago = is_upcoming ? _('remaining') : _('ago')
"#{content} #{remaining_or_ago}".html_safe
elsif start_date&.past?

View File

@ -0,0 +1,5 @@
---
title: Fix wording on milestone due date when milestone is due today
merge_request: 32096
author:
type: changed

View File

@ -57,6 +57,28 @@ describe EntityDateHelper do
end
end
context 'when milestone due date is today' do
let(:milestone_remaining) { date_helper_class.remaining_days_in_words(Date.today) }
it 'returns today' do
expect(milestone_remaining).to eq("<strong>Today</strong>")
end
end
context 'when milestone due date is tomorrow' do
let(:milestone_remaining) { date_helper_class.remaining_days_in_words(Date.tomorrow) }
it 'returns 1 day remaining' do
expect(milestone_remaining).to eq("<strong>1</strong> day remaining")
end
it 'returns 1 day remaining when queried mid-day' do
Timecop.freeze(Time.utc(2017, 3, 17, 13, 10)) do
expect(milestone_remaining).to eq("<strong>1</strong> day remaining")
end
end
end
context 'when less than 1 year and more than 30 days remaining' do
let(:milestone_remaining) { date_helper_class.remaining_days_in_words(2.months.from_now.utc.to_date) }