@@ -49,6 +49,61 @@ describe('BaseApp', () => {
49
49
} )
50
50
} )
51
51
52
+ describe ( 'messageToChunks' , ( ) => {
53
+ it ( 'should split message into chunks correctly' , ( ) => {
54
+ // subclassing to expose protected method
55
+ class TestBaseApp extends BaseApp {
56
+ public messageToChunks ( message : Buffer ) {
57
+ return super . messageToChunks ( message )
58
+ }
59
+ }
60
+
61
+ const transport = new MockTransport ( Buffer . alloc ( 0 ) )
62
+ const app = new TestBaseApp ( transport , params )
63
+ const message = Buffer . alloc ( 500 )
64
+ const chunks = app . messageToChunks ( message )
65
+
66
+ expect ( chunks . length ) . toBeGreaterThan ( 1 )
67
+ chunks . forEach ( ( chunk , index ) => {
68
+ console . log ( `Chunk ${ index } size: ${ chunk . length } ` )
69
+ expect ( chunk . length ) . toBeLessThanOrEqual ( params . chunkSize )
70
+ } )
71
+ } )
72
+
73
+ it ( 'should handle empty message' , ( ) => {
74
+ // subclassing to expose protected method
75
+ class TestBaseApp extends BaseApp {
76
+ public messageToChunks ( message : Buffer ) {
77
+ return super . messageToChunks ( message )
78
+ }
79
+ }
80
+
81
+ const transport = new MockTransport ( Buffer . alloc ( 0 ) )
82
+ const app = new TestBaseApp ( transport , params )
83
+ const message = Buffer . from ( '' )
84
+ const chunks = app . messageToChunks ( message )
85
+
86
+ expect ( chunks . length ) . toBe ( 0 )
87
+ } )
88
+
89
+ it ( 'should handle message exactly equal to chunk size' , ( ) => {
90
+ // subclassing to expose protected method
91
+ class TestBaseApp extends BaseApp {
92
+ public messageToChunks ( message : Buffer ) {
93
+ return super . messageToChunks ( message )
94
+ }
95
+ }
96
+
97
+ const transport = new MockTransport ( Buffer . alloc ( 0 ) )
98
+ const app = new TestBaseApp ( transport , params )
99
+ const message = Buffer . alloc ( params . chunkSize , 'a' )
100
+ const chunks = app . messageToChunks ( message )
101
+
102
+ expect ( chunks . length ) . toBe ( 1 )
103
+ expect ( chunks [ 0 ] . toString ( ) ) . toBe ( 'a' . repeat ( params . chunkSize ) )
104
+ } )
105
+ } )
106
+
52
107
describe ( 'getVersion' , ( ) => {
53
108
it ( 'should retrieve version information (5 bytes)' , async ( ) => {
54
109
const responseBuffer = Buffer . concat ( [
0 commit comments