From 43610d1ab454393e1722e38f39d5c1ab8677093c Mon Sep 17 00:00:00 2001 From: Kunal Marwaha Date: Mon, 28 Nov 2016 23:08:30 -0800 Subject: [PATCH] Return invalid date for humanize if duration is invalid --- src/lib/duration/humanize.js | 4 ++++ src/test/moment/duration.js | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/lib/duration/humanize.js b/src/lib/duration/humanize.js index 6120d404b..5bae088b3 100644 --- a/src/lib/duration/humanize.js +++ b/src/lib/duration/humanize.js @@ -65,6 +65,10 @@ export function getSetRelativeTimeThreshold (threshold, limit) { } export function humanize (withSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + var locale = this.localeData(); var output = relativeTime(this, !withSuffix, locale); diff --git a/src/test/moment/duration.js b/src/test/moment/duration.js index 3b8b493f8..70fe4a43e 100644 --- a/src/test/moment/duration.js +++ b/src/test/moment/duration.js @@ -49,21 +49,25 @@ test('object instantiation with strings', function (assert) { test('milliseconds instantiation', function (assert) { assert.equal(moment.duration(72).milliseconds(), 72, 'milliseconds'); + assert.equal(moment.duration(72).humanize(), 'a few seconds', 'Duration should be valid'); }); test('undefined instantiation', function (assert) { assert.equal(moment.duration(undefined).milliseconds(), 0, 'milliseconds'); assert.equal(moment.duration(undefined).isValid(), true, '_isValid'); + assert.equal(moment.duration(undefined).humanize(), 'a few seconds', 'Duration should be valid'); }); test('null instantiation', function (assert) { assert.equal(moment.duration(null).milliseconds(), 0, 'milliseconds'); assert.equal(moment.duration(null).isValid(), true, '_isValid'); + assert.equal(moment.duration(null).humanize(), 'a few seconds', 'Duration should be valid'); }); test('NaN instantiation', function (assert) { assert.equal(moment.duration(NaN).milliseconds(), 0, 'milliseconds'); assert.equal(moment.duration(NaN).isValid(), false, '_isValid'); + assert.equal(moment.duration(NaN).humanize(), 'Invalid date', 'Duration should be invalid'); }); test('instantiation by type', function (assert) { -- 2.47.2