@@ -18,6 +18,7 @@ describe('modelType', function () {
1818 $compile = _$compile_ ;
1919 $rootScope = _$rootScope_ ;
2020 $rootScope . date = null ;
21+ moment . tz . setDefault ( null ) ;
2122 } ) ) ;
2223
2324 describe ( 'throws exception' , function ( ) {
@@ -142,6 +143,32 @@ describe('modelType', function () {
142143
143144 expect ( moment ( '1999-01-01' ) . isSame ( $rootScope . date ) ) . toBeTruthy ( ) ;
144145 } ) ;
146+ it ( 'returns a moment with correct time zone' , function ( ) {
147+
148+ $rootScope . date = 1132185600000 ; // '2005-11-17'
149+ moment . tz . setDefault ( 'America/Los_Angeles' ) ;
150+
151+ var element = $compile ( '<datetimepicker data-ng-model="date" data-datetimepicker-config="{ modelType: \'moment\', startView: \'year\', minView: \'year\' }"></datetimepicker>' ) ( $rootScope ) ;
152+ $rootScope . $digest ( ) ;
153+
154+ var selectedElement = jQuery ( jQuery ( '.year' , element ) [ 0 ] ) ;
155+ selectedElement . trigger ( 'click' ) ;
156+
157+ expect ( moment ( '1999-01-01T00:00:00-08:00' ) . isSame ( $rootScope . date ) ) . toBeTruthy ( ) ;
158+ } ) ;
159+ it ( 'returns a moment with correct time zone' , function ( ) {
160+
161+ $rootScope . date = 1132185600000 ; // '2005-11-17'
162+ moment . tz . setDefault ( 'America/New_York' ) ;
163+
164+ var element = $compile ( '<datetimepicker data-ng-model="date" data-datetimepicker-config="{ modelType: \'moment\', startView: \'year\', minView: \'year\' }"></datetimepicker>' ) ( $rootScope ) ;
165+ $rootScope . $digest ( ) ;
166+
167+ var selectedElement = jQuery ( jQuery ( '.year' , element ) [ 0 ] ) ;
168+ selectedElement . trigger ( 'click' ) ;
169+
170+ expect ( moment ( '1999-01-01T00:00:00-05:00' ) . isSame ( $rootScope . date ) ) . toBeTruthy ( ) ;
171+ } ) ;
145172 it ( 'throws an exception if invalid date string is in the model' , function ( ) {
146173
147174 $rootScope . date = 'invalid-date' ;
@@ -263,6 +290,32 @@ describe('modelType', function () {
263290
264291 expect ( $rootScope . date ) . toBe ( 'gibb5ri012' ) ;
265292 } ) ;
293+ it ( 'returns formatted string in correct time zone' , function ( ) {
294+
295+ $rootScope . date = moment ( '2005-11-17' ) . toDate ( ) ;
296+ moment . tz . setDefault ( 'America/Los_Angeles' ) ;
297+
298+ var element = $compile ( '<datetimepicker data-ng-model="date" data-datetimepicker-config="{ modelType: \'MM-DD-YYYY Z\', startView: \'year\', minView: \'year\' }"></datetimepicker>' ) ( $rootScope ) ;
299+ $rootScope . $digest ( ) ;
300+
301+ var selectedElement = jQuery ( jQuery ( '.year' , element ) [ 0 ] ) ;
302+ selectedElement . trigger ( 'click' ) ;
303+
304+ expect ( $rootScope . date ) . toBe ( '01-01-1999 -08:00' ) ;
305+ } ) ;
306+ it ( 'returns formatted string in correct time zone' , function ( ) {
307+
308+ $rootScope . date = moment ( '2005-11-17' ) . toDate ( ) ;
309+ moment . tz . setDefault ( 'America/New_York' ) ;
310+
311+ var element = $compile ( '<datetimepicker data-ng-model="date" data-datetimepicker-config="{ modelType: \'MM-DD-YYYY Z\', startView: \'year\', minView: \'year\' }"></datetimepicker>' ) ( $rootScope ) ;
312+ $rootScope . $digest ( ) ;
313+
314+ var selectedElement = jQuery ( jQuery ( '.year' , element ) [ 0 ] ) ;
315+ selectedElement . trigger ( 'click' ) ;
316+
317+ expect ( $rootScope . date ) . toBe ( '01-01-1999 -05:00' ) ;
318+ } ) ;
266319 it ( 'throws an exception if numeric string is in the model' , function ( ) {
267320
268321 $rootScope . date = '1132185600000' ;
0 commit comments