summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Croitor <acroitor@gitlab.com>2019-08-22 14:29:40 +0300
committerAlexandru Croitor <acroitor@gitlab.com>2019-09-03 15:19:58 +0300
commit8e6e1e1d155c39a770600ccaf51b9c617463fd19 (patch)
tree230c40eb4c3785edde6715f59e18f71595a1ec68
parentda0a5c7cc20194b71c41bd5572717fd9ac382cf4 (diff)
downloadgitlab-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.rb12
-rw-r--r--changelogs/unreleased/62591-fix-milestone-due-date-today-wording.yml5
-rw-r--r--spec/serializers/entity_date_helper_spec.rb22
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) }