@@ -365,13 +365,29 @@ describe('@mongodb-js/shell-bson-parser', function () {
365365 } ) ;
366366 } ) ;
367367
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 ( ) ) {
369382 context (
370- `Date allow using member methods with "${ dateFn } "` ,
383+ `Date allow using member methods with "${ dateFn } " and args ${ JSON . stringify (
384+ args
385+ ) } `,
371386 function ( ) {
372387 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 ( ',' ) } )`;
375391 const input = `{
376392 getDate: (${ newDate } ).getDate(),
377393 getDay: (${ newDate } ).getDay(),
@@ -411,42 +427,48 @@ describe('@mongodb-js/shell-bson-parser', function () {
411427 toISOString: (${ newDate } ).toISOString(),
412428 }` ;
413429 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 ( ) ,
450472 } ) ;
451473 } ) ;
452474
0 commit comments