@@ -365,13 +365,29 @@ describe('@mongodb-js/shell-bson-parser', function () {
365
365
} ) ;
366
366
} ) ;
367
367
368
- for ( const dateFn of [ 'new Date' , 'new ISODate' , 'ISODate' ] ) {
368
+ function * isoDateTests ( ) : Iterable < { dateFn : string ; args : any [ ] } > {
369
+ for ( const dateFn of [ 'new Date' , 'new ISODate' , 'ISODate' ] ) {
370
+ for ( const args of [
371
+ [ ] ,
372
+ [ 0 ] ,
373
+ [ 1234567890000 ] ,
374
+ [ null ] ,
375
+ [ '1996-02-24T23:01:59.001Z' ] ,
376
+ ] )
377
+ yield { dateFn, args } ;
378
+ }
379
+ }
380
+
381
+ for ( const { dateFn, args } of isoDateTests ( ) ) {
369
382
context (
370
- `Date allow using member methods with "${ dateFn } "` ,
383
+ `Date allow using member methods with "${ dateFn } " and args ${ JSON . stringify (
384
+ args
385
+ ) } `,
371
386
function ( ) {
372
387
it ( 'should allow member expressions' , function ( ) {
373
- const isoString = '1996-02-24T23:01:59.001Z' ;
374
- const newDate = `${ dateFn } ('${ isoString } ')` ;
388
+ const newDate = `${ dateFn } (${ args
389
+ . map ( ( val ) => JSON . stringify ( val ) )
390
+ . join ( ',' ) } )`;
375
391
const input = `{
376
392
getDate: (${ newDate } ).getDate(),
377
393
getDay: (${ newDate } ).getDay(),
@@ -411,42 +427,48 @@ describe('@mongodb-js/shell-bson-parser', function () {
411
427
toISOString: (${ newDate } ).toISOString(),
412
428
}` ;
413
429
expect ( parse ( input , options ) ) . to . deep . equal ( {
414
- getDate : new Date ( isoString ) . getDate ( ) ,
415
- getDay : new Date ( isoString ) . getDay ( ) ,
416
- getFullYear : new Date ( isoString ) . getFullYear ( ) ,
417
- getHours : new Date ( isoString ) . getHours ( ) ,
418
- getMilliseconds : new Date ( isoString ) . getMilliseconds ( ) ,
419
- getMinutes : new Date ( isoString ) . getMinutes ( ) ,
420
- getMonth : new Date ( isoString ) . getMonth ( ) ,
421
- getSeconds : new Date ( isoString ) . getSeconds ( ) ,
422
- getTime : new Date ( isoString ) . getTime ( ) ,
423
- getTimezoneOffset : new Date ( isoString ) . getTimezoneOffset ( ) ,
424
- getUTCDate : new Date ( isoString ) . getUTCDate ( ) ,
425
- getUTCDay : new Date ( isoString ) . getUTCDay ( ) ,
426
- getUTCFullYear : new Date ( isoString ) . getUTCFullYear ( ) ,
427
- getUTCHours : new Date ( isoString ) . getUTCHours ( ) ,
428
- getUTCMilliseconds : new Date ( isoString ) . getUTCMilliseconds ( ) ,
429
- getUTCMinutes : new Date ( isoString ) . getUTCMinutes ( ) ,
430
- getUTCMonth : new Date ( isoString ) . getUTCMonth ( ) ,
431
- getUTCSeconds : new Date ( isoString ) . getUTCSeconds ( ) ,
432
- getYear : ( new Date ( isoString ) as any ) . getYear ( ) , // getYear is deprecated
433
- setDate : new Date ( isoString ) . setDate ( 24 ) ,
434
- setFullYear : new Date ( isoString ) . setFullYear ( 2010 ) ,
435
- setHours : new Date ( isoString ) . setHours ( 23 ) ,
436
- setMilliseconds : new Date ( isoString ) . setMilliseconds ( 1 ) ,
437
- setMinutes : new Date ( isoString ) . setMinutes ( 1 ) ,
438
- setMonth : new Date ( isoString ) . setMonth ( 1 ) ,
439
- setSeconds : new Date ( isoString ) . setSeconds ( 59 ) ,
440
- setTime : new Date ( isoString ) . setTime ( 10 ) ,
441
- setUTCDate : new Date ( isoString ) . setUTCDate ( 24 ) ,
442
- setUTCFullYear : new Date ( isoString ) . setUTCFullYear ( 2010 ) ,
443
- setUTCHours : new Date ( isoString ) . setUTCHours ( 23 ) ,
444
- setUTCMilliseconds : new Date ( isoString ) . setUTCMilliseconds ( 1 ) ,
445
- setUTCMinutes : new Date ( isoString ) . setUTCMinutes ( 1 ) ,
446
- setUTCMonth : new Date ( isoString ) . setUTCMonth ( 1 ) ,
447
- setUTCSeconds : new Date ( isoString ) . setUTCSeconds ( 59 ) ,
448
- setYear : ( new Date ( isoString ) as any ) . setYear ( 96 ) , // setYear is deprecated
449
- toISOString : new Date ( isoString ) . toISOString ( ) ,
430
+ getDate : new ( Date as any ) ( ...args ) . getDate ( ) ,
431
+ getDay : new ( Date as any ) ( ...args ) . getDay ( ) ,
432
+ getFullYear : new ( Date as any ) ( ...args ) . getFullYear ( ) ,
433
+ getHours : new ( Date as any ) ( ...args ) . getHours ( ) ,
434
+ getMilliseconds : new ( Date as any ) ( ...args ) . getMilliseconds ( ) ,
435
+ getMinutes : new ( Date as any ) ( ...args ) . getMinutes ( ) ,
436
+ getMonth : new ( Date as any ) ( ...args ) . getMonth ( ) ,
437
+ getSeconds : new ( Date as any ) ( ...args ) . getSeconds ( ) ,
438
+ getTime : new ( Date as any ) ( ...args ) . getTime ( ) ,
439
+ getTimezoneOffset : new ( Date as any ) (
440
+ ...args
441
+ ) . getTimezoneOffset ( ) ,
442
+ getUTCDate : new ( Date as any ) ( ...args ) . getUTCDate ( ) ,
443
+ getUTCDay : new ( Date as any ) ( ...args ) . getUTCDay ( ) ,
444
+ getUTCFullYear : new ( Date as any ) ( ...args ) . getUTCFullYear ( ) ,
445
+ getUTCHours : new ( Date as any ) ( ...args ) . getUTCHours ( ) ,
446
+ getUTCMilliseconds : new ( Date as any ) (
447
+ ...args
448
+ ) . getUTCMilliseconds ( ) ,
449
+ getUTCMinutes : new ( Date as any ) ( ...args ) . getUTCMinutes ( ) ,
450
+ getUTCMonth : new ( Date as any ) ( ...args ) . getUTCMonth ( ) ,
451
+ getUTCSeconds : new ( Date as any ) ( ...args ) . getUTCSeconds ( ) ,
452
+ getYear : new ( Date as any ) ( ...args ) . getYear ( ) , // getYear is deprecated
453
+ setDate : new ( Date as any ) ( ...args ) . setDate ( 24 ) ,
454
+ setFullYear : new ( Date as any ) ( ...args ) . setFullYear ( 2010 ) ,
455
+ setHours : new ( Date as any ) ( ...args ) . setHours ( 23 ) ,
456
+ setMilliseconds : new ( Date as any ) ( ...args ) . setMilliseconds ( 1 ) ,
457
+ setMinutes : new ( Date as any ) ( ...args ) . setMinutes ( 1 ) ,
458
+ setMonth : new ( Date as any ) ( ...args ) . setMonth ( 1 ) ,
459
+ setSeconds : new ( Date as any ) ( ...args ) . setSeconds ( 59 ) ,
460
+ setTime : new ( Date as any ) ( ...args ) . setTime ( 10 ) ,
461
+ setUTCDate : new ( Date as any ) ( ...args ) . setUTCDate ( 24 ) ,
462
+ setUTCFullYear : new ( Date as any ) ( ...args ) . setUTCFullYear ( 2010 ) ,
463
+ setUTCHours : new ( Date as any ) ( ...args ) . setUTCHours ( 23 ) ,
464
+ setUTCMilliseconds : new ( Date as any ) (
465
+ ...args
466
+ ) . setUTCMilliseconds ( 1 ) ,
467
+ setUTCMinutes : new ( Date as any ) ( ...args ) . setUTCMinutes ( 1 ) ,
468
+ setUTCMonth : new ( Date as any ) ( ...args ) . setUTCMonth ( 1 ) ,
469
+ setUTCSeconds : new ( Date as any ) ( ...args ) . setUTCSeconds ( 59 ) ,
470
+ setYear : new ( Date as any ) ( ...args ) . setYear ( 96 ) , // setYear is deprecated
471
+ toISOString : new ( Date as any ) ( ...args ) . toISOString ( ) ,
450
472
} ) ;
451
473
} ) ;
452
474
0 commit comments