@@ -732,7 +732,7 @@ describe("Sender message builder test suite (anything not covered in client inte
732732 await sender . close ( ) ;
733733 } ) ;
734734
735- it ( "extends the size of the buffer if data does not fit" , async function ( ) {
735+ it ( "extends the size of the buffer v1 if data does not fit" , async function ( ) {
736736 const sender = new Sender ( {
737737 protocol : "tcp" ,
738738 protocol_version : "1" ,
@@ -767,6 +767,39 @@ describe("Sender message builder test suite (anything not covered in client inte
767767 await sender . close ( ) ;
768768 } ) ;
769769
770+ it ( "extends the size of the buffer v2 if data does not fit" , async function ( ) {
771+ const sender = new Sender ( {
772+ protocol : "tcp" ,
773+ protocol_version : "2" ,
774+ host : "host" ,
775+ init_buf_size : 8 ,
776+ } ) ;
777+ expect ( bufferSize ( sender ) ) . toBe ( 8 ) ;
778+ expect ( bufferPosition ( sender ) ) . toBe ( 0 ) ;
779+ sender . table ( "tableName" ) ;
780+ expect ( bufferSize ( sender ) ) . toBe ( 24 ) ;
781+ expect ( bufferPosition ( sender ) ) . toBe ( "tableName" . length ) ;
782+ sender . floatColumn ( "floatField" , 123.456 ) ;
783+ expect ( bufferSize ( sender ) ) . toBe ( 48 ) ;
784+ expect ( bufferPosition ( sender ) ) . toBe ( "tableName floatField=" . length + 10 ) ;
785+ sender . stringColumn ( "strField" , "hoho" ) ;
786+ expect ( bufferSize ( sender ) ) . toBe ( 96 ) ;
787+ expect ( bufferPosition ( sender ) ) . toBe (
788+ "tableName floatField=" . length + 10 + ',strField="hoho"' . length ,
789+ ) ;
790+ await sender . atNow ( ) ;
791+ expect ( bufferSize ( sender ) ) . toBe ( 96 ) ;
792+ expect ( bufferPosition ( sender ) ) . toBe (
793+ "tableName floatField=" . length + 10 + ',strField="hoho"\n' . length ,
794+ ) ;
795+ expect ( bufferContentHex ( sender ) ) . toBe (
796+ toHex ( "tableName floatField=" ) +
797+ " 3d 10 77 be 9f 1a 2f dd 5e 40 " +
798+ toHex ( ',strField="hoho"\n' ) ,
799+ ) ;
800+ await sender . close ( ) ;
801+ } ) ;
802+
770803 it ( "throws exception if tries to extend the size of the buffer above max buffer size" , async function ( ) {
771804 const sender = await Sender . fromConfig (
772805 "tcp::addr=host;init_buf_size=8;max_buf_size=64;" ,
@@ -838,6 +871,21 @@ function bufferContent(sender: Sender) {
838871 return sender . buffer . toBufferView ( ) . toString ( ) ;
839872}
840873
874+ function bufferContentHex ( sender : Sender ) {
875+ // @ts -expect-error - Accessing private field
876+ return toHexString ( sender . buffer . toBufferView ( ) ) ;
877+ }
878+
879+ function toHex ( str : string ) {
880+ return toHexString ( Buffer . from ( str ) ) ;
881+ }
882+
883+ function toHexString ( buffer : Buffer ) {
884+ return Array . from ( buffer )
885+ . map ( ( b ) => b . toString ( 16 ) . padStart ( 2 , "0" ) )
886+ . join ( " " ) ;
887+ }
888+
841889function bufferSize ( sender : Sender ) {
842890 // @ts -expect-error - Accessing private field
843891 return sender . buffer . bufferSize ;
0 commit comments