From f44eb074eddfcb9f80a35410053d9b18d333f14a Mon Sep 17 00:00:00 2001 From: Paulo Fernandes Date: Mon, 3 Oct 2016 17:16:22 -0300 Subject: [PATCH] fixes format filter when invalid date. --- app/scripts/datePicker.js | 3 ++- dist/angular-datepicker.js | 3 ++- test/spec/datePickerTest.js | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/scripts/datePicker.js b/app/scripts/datePicker.js index b73f80c..0a428c3 100644 --- a/app/scripts/datePicker.js +++ b/app/scripts/datePicker.js @@ -25,7 +25,8 @@ Module.constant('datePickerConfig', { Module.filter('mFormat', function () { return function (m, format, tz) { if (!(moment.isMoment(m))) { - return moment(m).format(format); + var value = moment(m); + return value.isValid() ? value.format(format) : null; } return tz ? moment.tz(m, tz).format(format) : m.format(format); }; diff --git a/dist/angular-datepicker.js b/dist/angular-datepicker.js index fb1dc57..39d9e46 100644 --- a/dist/angular-datepicker.js +++ b/dist/angular-datepicker.js @@ -32,7 +32,8 @@ var Module = angular.module('datePicker', []); Module.filter('mFormat', function () { return function (m, format, tz) { if (!(moment.isMoment(m))) { - return (m) ? moment(m).format(format) : ''; + var value = moment(m); + return value.isValid() ? value.format(format) : null; } return tz ? moment.tz(m, tz).format(format) : m.format(format); }; diff --git a/test/spec/datePickerTest.js b/test/spec/datePickerTest.js index 065f074..ccae725 100644 --- a/test/spec/datePickerTest.js +++ b/test/spec/datePickerTest.js @@ -27,6 +27,20 @@ describe('Test date Picker Filter', function(){ expect(formattedDate).toBe('2015_01_02'); }); + + it('returns null when receiving an invalid date', function() { + var date = 'an invalid date'; + var formattedDate = mFormatFilter(date, 'YYYY_MM_DD'); + + expect(formattedDate).toBe(null); + }); + + it('returns null when receiving null', function() { + var date = null; + var formattedDate = mFormatFilter(date, 'YYYY_MM_DD'); + + expect(formattedDate).toBe(null); + }); }); describe('Test date Picker Directive', function(){