From b937d0c7c9ad1dff0aac8e9ba50268026baf67ca Mon Sep 17 00:00:00 2001 From: Taeuk Kang Date: Thu, 19 Jul 2018 09:46:19 +0900 Subject: [PATCH] Implemented fromMillis() to verify args (#301) Made fromMillis() verify its arg is a number --- src/datetime.js | 14 +++++++++----- test/datetime/create.test.js | 4 ++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/datetime.js b/src/datetime.js index 2520ebfaa..e7e604b25 100644 --- a/src/datetime.js +++ b/src/datetime.js @@ -501,11 +501,15 @@ export default class DateTime { * @return {DateTime} */ static fromMillis(milliseconds, options = {}) { - return new DateTime({ - ts: milliseconds, - zone: normalizeZone(options.zone, Settings.defaultZone), - loc: Locale.fromObject(options) - }); + if (!isNumber(milliseconds)) { + throw new InvalidArgumentError('fromMillis requires a numerical input'); + } else { + return new DateTime({ + ts: milliseconds, + zone: normalizeZone(options.zone, Settings.defaultZone), + loc: Locale.fromObject(options) + }); + } } /** diff --git a/test/datetime/create.test.js b/test/datetime/create.test.js index 8885cba34..4f2187b67 100644 --- a/test/datetime/create.test.js +++ b/test/datetime/create.test.js @@ -256,6 +256,10 @@ test('DateTime.fromMillis accepts the default locale', () => { withDefaultLocale('fr', () => expect(DateTime.fromMillis(391147200000).locale).toBe('fr')); }); +test('DateTime.fromMillis(ms) throws InvalidArgumentError for non-numeric input', () => { + expect(() => DateTime.fromMillis('slurp')).toThrow(); +}); + //------ // .fromObject() //-------