diff --git a/src/datepicker/datepicker.js b/src/datepicker/datepicker.js index c75e22917b..2048e41957 100644 --- a/src/datepicker/datepicker.js +++ b/src/datepicker/datepicker.js @@ -217,7 +217,7 @@ angular.module('ui.bootstrap.datepicker', ['ui.bootstrap.position']) scope.select = function( date ) { if ( mode === 0 ) { - var dt = new Date( ngModel.$modelValue ); + var dt = ngModel.$modelValue ? new Date( ngModel.$modelValue ) : new Date(0, 0, 0, 0, 0, 0, 0); dt.setFullYear( date.getFullYear(), date.getMonth(), date.getDate() ); ngModel.$setViewValue( dt ); refill( true ); diff --git a/src/datepicker/test/datepicker.spec.js b/src/datepicker/test/datepicker.spec.js index 6ed390b9d4..7707857375 100644 --- a/src/datepicker/test/datepicker.spec.js +++ b/src/datepicker/test/datepicker.spec.js @@ -1294,26 +1294,31 @@ describe('datepicker directive', function () { }); }); }); -}); -describe('datepicker directive with empty initial state', function () { - var $rootScope, element; - beforeEach(module('ui.bootstrap.datepicker')); - beforeEach(module('template/datepicker/datepicker.html')); - beforeEach(inject(function(_$compile_, _$rootScope_) { - $compile = _$compile_; - $rootScope = _$rootScope_; - $rootScope.date = null; - element = $compile('')($rootScope); - $rootScope.$digest(); - })); + describe('datepicker directive with empty initial state', function () { + beforeEach(inject(function() { + $rootScope.date = null; + element = $compile('')($rootScope); + $rootScope.$digest(); + })); - it('is a `` element', function() { - expect(element.prop('tagName')).toBe('TABLE'); - expect(element.find('thead').find('tr').length).toBe(2); - }); + it('is a `
` element', function() { + expect(element.prop('tagName')).toBe('TABLE'); + expect(element.find('thead').find('tr').length).toBe(2); + }); - it('is shows rows with days', function() { - expect(element.find('tbody').find('tr').length).toBeGreaterThan(3); + it('is shows rows with days', function() { + expect(element.find('tbody').find('tr').length).toBeGreaterThan(3); + }); + + it('sets default 00:00:00 time for selected date', function() { + $rootScope.date = new Date('August 1, 2013'); + $rootScope.$digest(); + $rootScope.date = null; + $rootScope.$digest(); + + clickOption(2, 0); + expect($rootScope.date).toEqual(new Date('August 11, 2013 00:00:00')); + }); }); });