@@ -22,6 +22,51 @@ assert.strictEqual(minLong.bottom, 0);
2222assert . strictEqual ( minLong . exactValueString , "-9223372036854775808" ) ;
2323const nl2 = NumberLong ( "200" ) ;
2424assert . strictEqual ( maxLong . compare ( nl2 ) , 1 ) ;
25+
2526const decimal = NumberDecimal ( "1.1" ) ;
2627assert . strictEqual ( decimal . toString ( ) , 'NumberDecimal("1.1")' ) ;
2728assert . strictEqual ( decimal . tojson ( ) , 'NumberDecimal("1.1")' ) ;
29+
30+ const ts1 = Timestamp ( ) ;
31+ assert . strictEqual ( ts1 . toString ( ) , 'Timestamp(0, 0)' ) ;
32+ const ts2 = Timestamp ( 100 , 200 ) ;
33+ assert . strictEqual ( ts2 . toString ( ) , 'Timestamp(100, 200)' ) ;
34+ const ts3 = Timestamp ( 1.9 , 2.1 ) ;
35+ assert . strictEqual ( ts3 . toString ( ) , 'Timestamp(1, 2)' ) ;
36+ try {
37+ Timestamp ( - 1 , 0 ) ;
38+ assert . fail ( 'Should throw for negative time' ) ;
39+ } catch ( e ) {
40+ assert ( e . message . includes ( 'must be non-negative' ) ) ;
41+ }
42+ try {
43+ Timestamp ( 0 , 5000000000 ) ;
44+ assert . fail ( 'Should throw for i > uint32 max' ) ;
45+ } catch ( e ) {
46+ assert ( e . message . includes ( 'not greater than 4294967295' ) ) ;
47+ }
48+ const ts4 = Timestamp ( 123 , 456 ) ;
49+ assert ( ts4 instanceof Timestamp ) ;
50+ assert . strictEqual ( ts4 . toString ( ) , 'Timestamp(123, 456)' ) ;
51+ assert . strictEqual ( ts4 . tojson ( ) , 'Timestamp(123, 456)' ) ;
52+ assert . strictEqual ( ts4 . getTime ( ) , 123 ) ;
53+ assert . strictEqual ( ts4 . getInc ( ) , 456 ) ;
54+ assert . strictEqual ( ts4 . _bsontype , 'Timestamp' ) ;
55+ const tsFromBits = Timestamp . fromBits ( 100 , 200 ) ;
56+ assert ( tsFromBits instanceof Timestamp ) ;
57+ assert . strictEqual ( tsFromBits . i , 100 ) ;
58+ assert . strictEqual ( tsFromBits . t , 200 ) ;
59+ assert . strictEqual ( tsFromBits . toString ( ) , 'Timestamp(200, 100)' ) ;
60+ const tsFromInt = Timestamp . fromInt ( 12345 ) ;
61+ assert . strictEqual ( tsFromInt . _bsontype , 'Timestamp' ) ;
62+ assert . strictEqual ( tsFromInt . i , 12345 ) ;
63+ assert . strictEqual ( tsFromInt . t , 0 ) ;
64+ const tsFromNum = Timestamp . fromNumber ( 67890 ) ;
65+ assert . strictEqual ( tsFromNum . _bsontype , 'Timestamp' ) ;
66+ assert . strictEqual ( tsFromNum . i , 67890 ) ;
67+ assert . strictEqual ( tsFromNum . t , 0 ) ;
68+ const tsFromStr = Timestamp . fromString ( 'ff' , 16 ) ;
69+ assert . strictEqual ( tsFromStr . i , 255 ) ;
70+ assert . strictEqual ( tsFromStr . t , 0 ) ;
71+ assert . strictEqual ( Timestamp . MAX_VALUE . _bsontype , 'Long' ) ;
72+ assert . strictEqual ( Timestamp . MAX_VALUE , Long . MAX_UNSIGNED_VALUE ) ;
0 commit comments