@@ -106,37 +106,44 @@ describe('BSON BigInt support', function () {
106
106
it ( description , test ) ;
107
107
}
108
108
109
- describe ( 'edge case tests' , function ( ) {
110
- const tests = [
111
- {
112
- expectedResult : { a : - ( 2n ** 63n ) } ,
113
- input : Buffer . from ( '10000000126100000000000000008000' , 'hex' )
114
- } ,
115
- {
116
- expectedResult : { a : - 1n } ,
117
- input : Buffer . from ( '10000000126100FFFFFFFFFFFFFFFF00' , 'hex' )
118
- } ,
119
- {
120
- expectedResult : { a : 0n } ,
121
- input : Buffer . from ( '10000000126100000000000000000000' , 'hex' )
122
- } ,
123
- {
124
- expectedResult : { a : 1n } ,
125
- input : Buffer . from ( '10000000126100010000000000000000' , 'hex' )
126
- } ,
127
- {
128
- expectedResult : { a : 2n ** 63n - 1n } ,
129
- input : Buffer . from ( '10000000126100FFFFFFFFFFFFFF7F00' , 'hex' )
130
- }
131
- ] ;
109
+ it ( 'correctly deserializes min 64 bit int (-2n**63n)' , function ( ) {
110
+ expect (
111
+ BSON . deserialize ( Buffer . from ( '10000000126100000000000000008000' , 'hex' ) , {
112
+ useBigInt64 : true
113
+ } )
114
+ ) . to . deep . equal ( { a : - ( 2n ** 63n ) } ) ;
115
+ } ) ;
132
116
133
- for ( const test of tests ) {
134
- it ( `correctly deserializes the bson document encoded in ${ test . input . toString ( 'hex' ) } ` , function ( ) {
135
- expect ( BSON . deserialize ( test . input , { useBigInt64 : true } ) ) . to . deep . equal (
136
- test . expectedResult
137
- ) ;
138
- } ) ;
139
- }
117
+ it ( 'correctly deserializes -1n' , function ( ) {
118
+ expect (
119
+ BSON . deserialize ( Buffer . from ( '10000000126100FFFFFFFFFFFFFFFF00' , 'hex' ) , {
120
+ useBigInt64 : true
121
+ } )
122
+ ) . to . deep . equal ( { a : - 1n } ) ;
123
+ } ) ;
124
+
125
+ it ( 'correctly deserializes 0n' , function ( ) {
126
+ expect (
127
+ BSON . deserialize ( Buffer . from ( '10000000126100000000000000000000' , 'hex' ) , {
128
+ useBigInt64 : true
129
+ } )
130
+ ) . to . deep . equal ( { a : 0n } ) ;
131
+ } ) ;
132
+
133
+ it ( 'correctly deserializes 1n' , function ( ) {
134
+ expect (
135
+ BSON . deserialize ( Buffer . from ( '10000000126100010000000000000000' , 'hex' ) , {
136
+ useBigInt64 : true
137
+ } )
138
+ ) . to . deep . equal ( { a : 1n } ) ;
139
+ } ) ;
140
+
141
+ it ( 'correctly deserializes max 64 bit int (2n**63n -1n)' , function ( ) {
142
+ expect (
143
+ BSON . deserialize ( Buffer . from ( '10000000126100FFFFFFFFFFFFFF7F00' , 'hex' ) , {
144
+ useBigInt64 : true
145
+ } )
146
+ ) . to . deep . equal ( { a : 2n ** 63n - 1n } ) ;
140
147
} ) ;
141
148
} ) ;
142
149
0 commit comments