diff --git a/frontend_tests/node_tests/timerender.js b/frontend_tests/node_tests/timerender.js index c31a79e8b0..d3d3632884 100644 --- a/frontend_tests/node_tests/timerender.js +++ b/frontend_tests/node_tests/timerender.js @@ -64,6 +64,20 @@ var timerender = require('js/timerender.js'); assert.equal(expected.needs_update, actual.needs_update); }()); +(function test_render_now_returns_year_with_year_boundary() { + var today = new XDate(1555091573000); // Friday 4/12/2019 5:52:53 PM (UTC+0) + var three_months_ago = today.clone().addMonths(-6, true); + var expected = { + time_str: 'Oct 12, 2018', + formal_time_str: 'Friday, October 12, 2018', + needs_update: false, + }; + var actual = timerender.render_now(three_months_ago, today); + assert.equal(expected.time_str, actual.time_str); + assert.equal(expected.formal_time_str, actual.formal_time_str); + assert.equal(expected.needs_update, actual.needs_update); +}()); + (function test_render_date_renders_time_html() { var today = new XDate(1555091573000); // Friday 4/12/2019 5:52:53 PM (UTC+0) var message_time = today.clone(); diff --git a/static/js/timerender.js b/static/js/timerender.js index be607d43b9..b82e99b4cc 100644 --- a/static/js/timerender.js +++ b/static/js/timerender.js @@ -35,15 +35,18 @@ exports.render_now = function (time, today) { // constants. var days_old = Math.round(start_of_other_day.diffDays(start_of_today)); + var is_older_year = + (start_of_today.getFullYear() - start_of_other_day.getFullYear()) > 0; + if (days_old === 0) { time_str = i18n.t("Today"); needs_update = true; } else if (days_old === 1) { time_str = i18n.t("Yesterday"); needs_update = true; - } else if (days_old >= 365) { + } else if (is_older_year) { // For long running servers, searching backlog can get ambiguous - // without a year stamp. Only show year if message is over a year old. + // without a year stamp. Only show year if message is from an older year time_str = time.toString("MMM\xa0dd,\xa0yyyy"); needs_update = false; } else {