@@ -216,34 +216,46 @@ describe("values", () => {
216
216
testRoundtrip ( "string with unicode" ,
217
217
"žluťoučký kůň úpěl ďábelské ódy" , "žluťoučký kůň úpěl ďábelské ódy" ) ;
218
218
219
- testRoundtrip ( "zero number" , 0 , 0 ) ;
220
- testRoundtrip ( "integer number" , - 2023 , - 2023 ) ;
221
- testRoundtrip ( "float number" , 12.345 , 12.345 ) ;
222
-
223
- describe ( "'number' int mode" , ( ) => {
224
- testRoundtrip ( "zero integer" , 0n , 0 , "number" ) ;
225
- testRoundtrip ( "small integer" , - 42n , - 42 , "number" ) ;
226
- testRoundtrip ( "largest safe integer" , 9007199254740991n , 9007199254740991 , "number" ) ;
227
- testRoundtripError ( "smallest unsafe integer" , 9007199254740992n , RangeError , "number" ) ;
228
- testRoundtripError ( "large unsafe integer" , - 1152921504594532842n , RangeError , "number" ) ;
219
+ describe ( "number" , ( ) => {
220
+ const intModes : Array < libsql . IntMode > = [ "number" , "bigint" , "string" ] ;
221
+ for ( const intMode of intModes ) {
222
+ testRoundtrip ( "zero" , 0 , 0 , intMode ) ;
223
+ testRoundtrip ( "integer" , - 2023 , - 2023 , intMode ) ;
224
+ testRoundtrip ( "float" , 12.345 , 12.345 , intMode ) ;
225
+ testRoundtrip ( "large positive float" , 1e18 , 1e18 , intMode ) ;
226
+ testRoundtrip ( "large negative float" , - 1e18 , - 1e18 , intMode ) ;
227
+ testRoundtrip ( "MAX_VALUE" , Number . MAX_VALUE , Number . MAX_VALUE , intMode ) ;
228
+ testRoundtrip ( "-MAX_VALUE" , - Number . MAX_VALUE , - Number . MAX_VALUE , intMode ) ;
229
+ testRoundtrip ( "MIN_VALUE" , Number . MIN_VALUE , Number . MIN_VALUE , intMode ) ;
230
+ }
229
231
} ) ;
230
232
231
- describe ( "' bigint' int mode " , ( ) => {
232
- testRoundtrip ( "zero integer ", 0n , 0n , "bigint" ) ;
233
- testRoundtrip ( "small integer" , - 42n , - 42n , "bigint " ) ;
234
- testRoundtrip ( "large positive integer" , 1152921504608088318n , 1152921504608088318n , "bigint " ) ;
235
- testRoundtrip ( "large negative integer" , - 1152921504594532842n , - 1152921504594532842n , "bigint " ) ;
236
- testRoundtrip ( "largest positive integer", 9223372036854775807n , 9223372036854775807n , "bigint " ) ;
237
- testRoundtrip ( "largest negative integer", - 9223372036854775808n , - 9223372036854775808n , "bigint " ) ;
238
- } ) ;
233
+ describe ( "bigint" , ( ) => {
234
+ describe ( "'number' int mode ", ( ) => {
235
+ testRoundtrip ( "zero integer" , 0n , 0 , "number " ) ;
236
+ testRoundtrip ( "small integer" , - 42n , - 42 , "number " ) ;
237
+ testRoundtrip ( "largest safe integer" , 9007199254740991n , 9007199254740991 , "number " ) ;
238
+ testRoundtripError ( "smallest unsafe integer", 9007199254740992n , RangeError , "number " ) ;
239
+ testRoundtripError ( "large unsafe integer", - 1152921504594532842n , RangeError , "number " ) ;
240
+ } ) ;
239
241
240
- describe ( "'string' int mode" , ( ) => {
241
- testRoundtrip ( "zero integer" , 0n , "0" , "string" ) ;
242
- testRoundtrip ( "small integer" , - 42n , "-42" , "string" ) ;
243
- testRoundtrip ( "large positive integer" , 1152921504608088318n , "1152921504608088318" , "string" ) ;
244
- testRoundtrip ( "large negative integer" , - 1152921504594532842n , "-1152921504594532842" , "string" ) ;
245
- testRoundtrip ( "largest positive integer" , 9223372036854775807n , "9223372036854775807" , "string" ) ;
246
- testRoundtrip ( "largest negative integer" , - 9223372036854775808n , "-9223372036854775808" , "string" ) ;
242
+ describe ( "'bigint' int mode" , ( ) => {
243
+ testRoundtrip ( "zero integer" , 0n , 0n , "bigint" ) ;
244
+ testRoundtrip ( "small integer" , - 42n , - 42n , "bigint" ) ;
245
+ testRoundtrip ( "large positive integer" , 1152921504608088318n , 1152921504608088318n , "bigint" ) ;
246
+ testRoundtrip ( "large negative integer" , - 1152921504594532842n , - 1152921504594532842n , "bigint" ) ;
247
+ testRoundtrip ( "largest positive integer" , 9223372036854775807n , 9223372036854775807n , "bigint" ) ;
248
+ testRoundtrip ( "largest negative integer" , - 9223372036854775808n , - 9223372036854775808n , "bigint" ) ;
249
+ } ) ;
250
+
251
+ describe ( "'string' int mode" , ( ) => {
252
+ testRoundtrip ( "zero integer" , 0n , "0" , "string" ) ;
253
+ testRoundtrip ( "small integer" , - 42n , "-42" , "string" ) ;
254
+ testRoundtrip ( "large positive integer" , 1152921504608088318n , "1152921504608088318" , "string" ) ;
255
+ testRoundtrip ( "large negative integer" , - 1152921504594532842n , "-1152921504594532842" , "string" ) ;
256
+ testRoundtrip ( "largest positive integer" , 9223372036854775807n , "9223372036854775807" , "string" ) ;
257
+ testRoundtrip ( "largest negative integer" , - 9223372036854775808n , "-9223372036854775808" , "string" ) ;
258
+ } ) ;
247
259
} ) ;
248
260
249
261
const buf = new ArrayBuffer ( 256 ) ;
@@ -255,11 +267,10 @@ describe("values", () => {
255
267
testRoundtrip ( "Uint8Array" , array , buf ) ;
256
268
257
269
testRoundtrip ( "null" , null , null ) ;
258
- testRoundtrip ( "true" , true , 1 ) ;
259
- testRoundtrip ( "false" , false , 0 ) ;
270
+ testRoundtrip ( "true" , true , 1n , "bigint" ) ;
271
+ testRoundtrip ( "false" , false , 0n , "bigint" ) ;
260
272
261
- testRoundtrip ( "bigint" , - 1000n , - 1000 ) ;
262
- testRoundtrip ( "Date" , new Date ( "2023-01-02T12:34:56Z" ) , 1672662896000 ) ;
273
+ testRoundtrip ( "Date" , new Date ( "2023-01-02T12:34:56Z" ) , 1672662896000 , "bigint" ) ;
263
274
264
275
// @ts -expect-error
265
276
testRoundtripError ( "undefined produces error" , undefined , TypeError ) ;
0 commit comments