diff options
author | Alexandru Croitor <acroitor@gitlab.com> | 2019-08-22 14:29:40 +0300 |
---|---|---|
committer | Alexandru Croitor <acroitor@gitlab.com> | 2019-09-03 15:19:58 +0300 |
commit | 8e6e1e1d155c39a770600ccaf51b9c617463fd19 (patch) | |
tree | 230c40eb4c3785edde6715f59e18f71595a1ec68 | |
parent | da0a5c7cc20194b71c41bd5572717fd9ac382cf4 (diff) | |
download | gitlab-ce-62591-fix-milestone-due-date-today-wording.tar.gz |
Fix wording on milestone due date today62591-fix-milestone-due-date-today-wording
Fix wording on milestone due date, to show today instead of
hours ago or remaining, when milestone is due today.
-rw-r--r-- | app/serializers/entity_date_helper.rb | 12 | ||||
-rw-r--r-- | changelogs/unreleased/62591-fix-milestone-due-date-today-wording.yml | 5 | ||||
-rw-r--r-- | spec/serializers/entity_date_helper_spec.rb | 22 |
3 files changed, 34 insertions, 5 deletions
diff --git a/app/serializers/entity_date_helper.rb b/app/serializers/entity_date_helper.rb index f515abe5917..d8f267d7183 100644 --- a/app/serializers/entity_date_helper.rb +++ b/app/serializers/entity_date_helper.rb @@ -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? diff --git a/changelogs/unreleased/62591-fix-milestone-due-date-today-wording.yml b/changelogs/unreleased/62591-fix-milestone-due-date-today-wording.yml new file mode 100644 index 00000000000..532b582f407 --- /dev/null +++ b/changelogs/unreleased/62591-fix-milestone-due-date-today-wording.yml @@ -0,0 +1,5 @@ +--- +title: Fix wording on milestone due date when milestone is due today +merge_request: 32096 +author: +type: changed diff --git a/spec/serializers/entity_date_helper_spec.rb b/spec/serializers/entity_date_helper_spec.rb index ae0f917415c..73506954965 100644 --- a/spec/serializers/entity_date_helper_spec.rb +++ b/spec/serializers/entity_date_helper_spec.rb @@ -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) } |