@@ -18,6 +18,11 @@ describe('sinks/sqs.js', () => {
1818 Id : '1' ,
1919 MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
2020 } ,
21+ } , {
22+ message : {
23+ Id : '2' ,
24+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
25+ } ,
2126 } ] ;
2227
2328 _ ( uows )
@@ -26,7 +31,68 @@ describe('sinks/sqs.js', () => {
2631 . tap ( ( collected ) => {
2732 // console.log(JSON.stringify(collected, null, 2));
2833
29- expect ( collected . length ) . to . equal ( 1 ) ;
34+ expect ( collected . length ) . to . equal ( 2 ) ;
35+ expect ( collected [ 0 ] ) . to . deep . equal ( {
36+ message : {
37+ Id : '1' ,
38+ MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
39+ } ,
40+ inputParams : {
41+ Entries : [ {
42+ Id : '1' ,
43+ MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
44+ } , {
45+ Id : '2' ,
46+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
47+ } ] ,
48+ } ,
49+ sendMessageBatchResponse : { } ,
50+ } ) ;
51+
52+ expect ( collected [ 1 ] ) . to . deep . equal ( {
53+ message : {
54+ Id : '2' ,
55+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
56+ } ,
57+ inputParams : {
58+ Entries : [ {
59+ Id : '1' ,
60+ MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
61+ } , {
62+ Id : '2' ,
63+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
64+ } ] ,
65+ } ,
66+ sendMessageBatchResponse : { } ,
67+ } ) ;
68+ } )
69+ . done ( done ) ;
70+ } ) ;
71+
72+ it ( 'should split a batch due to batch size' , ( done ) => {
73+ sinon . stub ( Connector . prototype , 'sendMessageBatch' ) . resolves ( { } ) ;
74+
75+ const uows = [ {
76+ message : {
77+ Id : '1' ,
78+ MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
79+ } ,
80+ } , {
81+ message : {
82+ Id : '2' ,
83+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
84+ } ,
85+ } ] ;
86+
87+ _ ( uows )
88+ . through ( sendToSqs ( {
89+ batchSize : 1 ,
90+ } ) )
91+ . collect ( )
92+ . tap ( ( collected ) => {
93+ // console.log(JSON.stringify(collected, null, 2));
94+
95+ expect ( collected . length ) . to . equal ( 2 ) ;
3096 expect ( collected [ 0 ] ) . to . deep . equal ( {
3197 message : {
3298 Id : '1' ,
@@ -40,6 +106,73 @@ describe('sinks/sqs.js', () => {
40106 } ,
41107 sendMessageBatchResponse : { } ,
42108 } ) ;
109+ expect ( collected [ 1 ] ) . to . deep . equal ( {
110+ message : {
111+ Id : '2' ,
112+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
113+ } ,
114+ inputParams : {
115+ Entries : [ {
116+ Id : '2' ,
117+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
118+ } ] ,
119+ } ,
120+ sendMessageBatchResponse : { } ,
121+ } ) ;
122+ } )
123+ . done ( done ) ;
124+ } ) ;
125+
126+ it ( 'should split a batch due to payload size' , ( done ) => {
127+ sinon . stub ( Connector . prototype , 'sendMessageBatch' ) . resolves ( { } ) ;
128+
129+ const uows = [ {
130+ message : {
131+ Id : '1' ,
132+ MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
133+ } ,
134+ } , {
135+ message : {
136+ Id : '2' ,
137+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
138+ } ,
139+ } ] ;
140+
141+ _ ( uows )
142+ . through ( sendToSqs ( {
143+ maxPayloadSize : 50 ,
144+ } ) )
145+ . collect ( )
146+ . tap ( ( collected ) => {
147+ // console.log(JSON.stringify(collected, null, 2));
148+
149+ expect ( collected . length ) . to . equal ( 2 ) ;
150+ expect ( collected [ 0 ] ) . to . deep . equal ( {
151+ message : {
152+ Id : '1' ,
153+ MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
154+ } ,
155+ inputParams : {
156+ Entries : [ {
157+ Id : '1' ,
158+ MessageBody : JSON . stringify ( { f1 : 'v1' } ) ,
159+ } ] ,
160+ } ,
161+ sendMessageBatchResponse : { } ,
162+ } ) ;
163+ expect ( collected [ 1 ] ) . to . deep . equal ( {
164+ message : {
165+ Id : '2' ,
166+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
167+ } ,
168+ inputParams : {
169+ Entries : [ {
170+ Id : '2' ,
171+ MessageBody : JSON . stringify ( { f1 : 'v2' } ) ,
172+ } ] ,
173+ } ,
174+ sendMessageBatchResponse : { } ,
175+ } ) ;
43176 } )
44177 . done ( done ) ;
45178 } ) ;
0 commit comments