@@ -10,6 +10,10 @@ describe('date parser', function() {
10
10
expect ( dateParser . parse ( input , format ) ) . toEqual ( date ) ;
11
11
}
12
12
13
+ function expectBaseParse ( input , format , baseDate , date ) {
14
+ expect ( dateParser . parse ( input , format , baseDate ) ) . toEqual ( date ) ;
15
+ }
16
+
13
17
describe ( 'with custom formats' , function ( ) {
14
18
it ( 'should work correctly for `dd`, `MM`, `yyyy`' , function ( ) {
15
19
expectParse ( '17.11.2013' , 'dd.MM.yyyy' , new Date ( 2013 , 10 , 17 , 0 ) ) ;
@@ -219,6 +223,27 @@ describe('date parser', function() {
219
223
} ) ;
220
224
} ) ;
221
225
226
+ describe ( 'base date' , function ( ) {
227
+ var baseDate ;
228
+
229
+ beforeEach ( function ( ) {
230
+ baseDate = new Date ( 2010 , 10 , 10 ) ;
231
+ } ) ;
232
+
233
+ it ( 'should pre-initialize our date with a base date' , function ( ) {
234
+ expect ( expectBaseParse ( '2015' , 'yyyy' , baseDate , new Date ( 2015 , 10 , 10 ) ) ) ;
235
+ expect ( expectBaseParse ( '1' , 'M' , baseDate , new Date ( 2010 , 0 , 10 ) ) ) ;
236
+ expect ( expectBaseParse ( '1' , 'd' , baseDate , new Date ( 2010 , 10 , 1 ) ) ) ;
237
+ } ) ;
238
+
239
+ it ( 'should ignore the base date when it is an invalid date' , inject ( function ( $log ) {
240
+ spyOn ( $log , 'warn' ) ;
241
+ expect ( expectBaseParse ( '30-12' , 'dd-MM' , new Date ( 'foo' ) , new Date ( 1900 , 11 , 30 ) ) ) ;
242
+ expect ( expectBaseParse ( '30-2015' , 'dd-yyyy' , 'I am a cat' , new Date ( 2015 , 0 , 30 ) ) ) ;
243
+ expect ( $log . warn ) . toHaveBeenCalledWith ( 'dateparser:' , 'baseDate is not a valid date' ) ;
244
+ } ) ) ;
245
+ } ) ;
246
+
222
247
it ( 'should not parse non-string inputs' , function ( ) {
223
248
expectParse ( 123456 , 'dd.MM.yyyy' , 123456 ) ;
224
249
var date = new Date ( ) ;
0 commit comments