@@ -140,4 +140,37 @@ describe('test DateRange', () => {
140
140
expect ( DateRange . empty . fromDate ) . toBe ( undefined ) ;
141
141
expect ( DateRange . empty . toDate ) . toBe ( undefined ) ;
142
142
} )
143
+
144
+ test ( 'hasLowerBound reports correctly' , ( ) => {
145
+ expect ( new DateRange ( ) . hasLowerBound ( ) ) . toBe ( false ) ;
146
+ expect ( new DateRange ( new Date ( ) ) . hasLowerBound ( ) ) . toBe ( true ) ;
147
+ expect ( new DateRange ( undefined , new Date ( ) ) . hasLowerBound ( ) ) . toBe ( false ) ;
148
+ expect ( new DateRange ( new Date ( ) , new Date ( ) ) . hasLowerBound ( ) ) . toBe ( true ) ;
149
+ } )
150
+
151
+ test ( 'hasUpperBound reports correctly' , ( ) => {
152
+ expect ( new DateRange ( ) . hasUpperBound ( ) ) . toBe ( false ) ;
153
+ expect ( new DateRange ( undefined , new Date ( ) ) . hasUpperBound ( ) ) . toBe ( true ) ;
154
+ expect ( new DateRange ( new Date ( ) , undefined ) . hasUpperBound ( ) ) . toBe ( false ) ;
155
+ expect ( new DateRange ( new Date ( ) , new Date ( ) ) . hasUpperBound ( ) ) . toBe ( true ) ;
156
+ } )
157
+
158
+ test ( 'toString returns correct string' , ( ) => {
159
+ // Should use '(' / ')' for exclusive bounds and '[' / ']' for inclusive bounds.
160
+ // Should use '...' for undefined bounds and ISO 8601 for defined bounds.
161
+ expect ( new DateRange ( ) . toString ( ) ) . toBe ( '(..., ...)' ) ;
162
+ expect ( new DateRange ( undefined , undefined , true , true ) . toString ( ) ) . toBe ( '[..., ...]' ) ;
163
+ const currDate = new Date ( ) ;
164
+ const expectedDateString = currDate . toISOString ( ) ;
165
+ expect ( new DateRange ( currDate ) . toString ( ) ) . toBe ( `(${ expectedDateString } , ...)` ) ;
166
+ expect ( new DateRange ( undefined , currDate ) . toString ( ) ) . toBe ( `(..., ${ expectedDateString } )` ) ;
167
+ expect ( new DateRange ( currDate , undefined , true , true ) . toString ( ) ) . toBe ( `[${ expectedDateString } , ...]` ) ;
168
+ expect ( new DateRange ( undefined , currDate , true , true ) . toString ( ) ) . toBe ( `[..., ${ expectedDateString } ]` ) ;
169
+ expect ( new DateRange ( currDate , undefined , true , false ) . toString ( ) ) . toBe ( `[${ expectedDateString } , ...)` ) ;
170
+ expect ( new DateRange ( currDate , undefined , false , true ) . toString ( ) ) . toBe ( `(${ expectedDateString } , ...]` ) ;
171
+ expect ( new DateRange ( undefined , currDate , true , false ) . toString ( ) ) . toBe ( `[..., ${ expectedDateString } )` ) ;
172
+ expect ( new DateRange ( undefined , currDate , false , true ) . toString ( ) ) . toBe ( `(..., ${ expectedDateString } ]` ) ;
173
+ expect ( new DateRange ( currDate , currDate ) . toString ( ) ) . toBe ( `(${ expectedDateString } , ${ expectedDateString } )` ) ;
174
+ expect ( new DateRange ( currDate , currDate , true , true ) . toString ( ) ) . toBe ( `[${ expectedDateString } , ${ expectedDateString } ]` ) ;
175
+ } ) ;
143
176
} ) ;
0 commit comments