@@ -27,6 +27,13 @@ import _ from 'lodash';
27
27
const RANDOM_VALUES_TO_TEST = 2000 ;
28
28
const MIN_TEMPORAL_ARRAY_LENGTH = 20 ;
29
29
const MAX_TEMPORAL_ARRAY_LENGTH = 1000 ;
30
+ /**
31
+ * Duration in neo4j is limited to `Long.MAX_VALUE` when converted to seconds.
32
+ * This bound should be used for all components of duration, except nanoseconds.
33
+ * It's a fairly random large value that allows created duration to not overflow.
34
+ * @type {number }
35
+ */
36
+ const MAX_DURATION_COMPONENT = 3000000000000 ;
30
37
const MAX_NANO_OF_SECOND = 999999999 ;
31
38
const MAX_YEAR = 999999999 ;
32
39
const MIN_YEAR = - MAX_YEAR ;
@@ -993,11 +1000,11 @@ describe('temporal-types', () => {
993
1000
}
994
1001
995
1002
function randomDuration ( ) {
996
- const sign = _ . sample ( [ true , false ] ) ? 1 : - 1 ; // duration can be negative
1003
+ const sign = _ . sample ( [ - 1 , 1 ] ) ; // duration can be negative
997
1004
return duration (
998
- sign * _ . random ( 0 , Number . MAX_SAFE_INTEGER ) ,
999
- sign * _ . random ( 0 , Number . MAX_SAFE_INTEGER ) ,
1000
- sign * _ . random ( 0 , Number . MAX_SAFE_INTEGER ) ,
1005
+ sign * _ . random ( 0 , MAX_DURATION_COMPONENT ) ,
1006
+ sign * _ . random ( 0 , MAX_DURATION_COMPONENT ) ,
1007
+ sign * _ . random ( 0 , MAX_DURATION_COMPONENT ) ,
1001
1008
_ . random ( 0 , MAX_NANO_OF_SECOND ) ,
1002
1009
) ;
1003
1010
}
0 commit comments