@@ -7,7 +7,6 @@ import { flexibleChecksumsMiddleware } from "./flexibleChecksumsMiddleware";
7
7
import { getChecksum } from "./getChecksum" ;
8
8
import { getChecksumAlgorithmForRequest } from "./getChecksumAlgorithmForRequest" ;
9
9
import { getChecksumLocationName } from "./getChecksumLocationName" ;
10
- import { FlexibleChecksumsMiddlewareConfig } from "./getFlexibleChecksumsPlugin" ;
11
10
import { hasHeader } from "./hasHeader" ;
12
11
import { isStreaming } from "./isStreaming" ;
13
12
import { selectChecksumAlgorithmFunction } from "./selectChecksumAlgorithmFunction" ;
@@ -31,13 +30,13 @@ describe(flexibleChecksumsMiddleware.name, () => {
31
30
32
31
const mockInput = { } ;
33
32
const mockConfig = { } as PreviouslyResolved ;
34
- const mockMiddlewareConfig = { input : mockInput } as FlexibleChecksumsMiddlewareConfig ;
33
+ const mockMiddlewareConfig = { input : mockInput , requestChecksumRequired : false } ;
35
34
36
- const mockBody = { body : "mockBody " } ;
35
+ const mockBody = { body : "mockRequestBody " } ;
37
36
const mockHeaders = { "content-length" : 100 } ;
38
37
const mockRequest = { body : mockBody , headers : mockHeaders } ;
39
38
const mockArgs = { request : mockRequest } as BuildHandlerArguments < any > ;
40
- const mockResult = { response : { } } ;
39
+ const mockResult = { response : { body : "mockResponsebody" } } ;
41
40
42
41
beforeEach ( ( ) => {
43
42
mockNext . mockResolvedValueOnce ( mockResult ) ;
@@ -89,9 +88,8 @@ describe(flexibleChecksumsMiddleware.name, () => {
89
88
} ;
90
89
( hasHeader as jest . Mock ) . mockReturnValue ( true ) ;
91
90
await handler ( mockArgsWithChecksumHeader ) ;
92
- expect ( getChecksumLocationName ) . toHaveBeenCalledTimes ( 1 ) ;
93
- expect ( selectChecksumAlgorithmFunction ) . toHaveBeenCalledTimes ( 1 ) ;
94
- expect ( hasHeader ) . toHaveBeenCalledTimes ( 1 ) ;
91
+ expect ( getChecksumLocationName ) . toHaveBeenCalledWith ( ChecksumAlgorithm . MD5 ) ;
92
+ expect ( selectChecksumAlgorithmFunction ) . toHaveBeenCalledWith ( ChecksumAlgorithm . MD5 , mockConfig ) ;
95
93
expect ( mockNext ) . toHaveBeenCalledWith ( mockArgsWithChecksumHeader ) ;
96
94
expect ( hasHeader ) . toHaveBeenCalledWith ( mockChecksumLocationName , mockHeadersWithChecksumHeader ) ;
97
95
} ) ;
@@ -126,10 +124,20 @@ describe(flexibleChecksumsMiddleware.name, () => {
126
124
it ( "for streaming body" , async ( ) => {
127
125
( isStreaming as jest . Mock ) . mockReturnValue ( true ) ;
128
126
const mockUpdatedBody = { body : "mockUpdatedBody" } ;
127
+
128
+ const mockBase64Encoder = jest . fn ( ) ;
129
+ const mockStreamHasher = jest . fn ( ) ;
130
+ const mockBodyLengthChecker = jest . fn ( ) ;
129
131
const mockGetAwsChunkedEncodingStream = jest . fn ( ) . mockReturnValue ( mockUpdatedBody ) ;
130
132
131
133
const handler = flexibleChecksumsMiddleware (
132
- { ...mockConfig , getAwsChunkedEncodingStream : mockGetAwsChunkedEncodingStream } ,
134
+ {
135
+ ...mockConfig ,
136
+ base64Encoder : mockBase64Encoder ,
137
+ bodyLengthChecker : mockBodyLengthChecker ,
138
+ getAwsChunkedEncodingStream : mockGetAwsChunkedEncodingStream ,
139
+ streamHasher : mockStreamHasher ,
140
+ } ,
133
141
mockMiddlewareConfig
134
142
) ( mockNext , { } ) ;
135
143
await handler ( mockArgs ) ;
@@ -150,7 +158,13 @@ describe(flexibleChecksumsMiddleware.name, () => {
150
158
body : mockUpdatedBody ,
151
159
} ,
152
160
} ) ;
153
- expect ( mockGetAwsChunkedEncodingStream ) . toHaveBeenCalledTimes ( 1 ) ;
161
+ expect ( mockGetAwsChunkedEncodingStream ) . toHaveBeenCalledWith ( mockRequest . body , {
162
+ base64Encoder : mockBase64Encoder ,
163
+ bodyLengthChecker : mockBodyLengthChecker ,
164
+ checksumLocationName : mockChecksumLocationName ,
165
+ checksumAlgorithmFn : mockChecksumAlgorithmFunction ,
166
+ streamHasher : mockStreamHasher ,
167
+ } ) ;
154
168
} ) ;
155
169
156
170
it ( "for non-streaming body" , async ( ) => {
@@ -172,14 +186,19 @@ describe(flexibleChecksumsMiddleware.name, () => {
172
186
it ( "validates checksum from the response header" , async ( ) => {
173
187
const mockRequestValidationModeMember = "mockRequestValidationModeMember" ;
174
188
const mockInput = { [ mockRequestValidationModeMember ] : "ENABLED" } ;
189
+ const mockResponseAlgorithms = [ "ALGO1" , "ALGO2" ] ;
175
190
176
191
const handler = flexibleChecksumsMiddleware ( mockConfig , {
177
192
...mockMiddlewareConfig ,
178
193
input : mockInput ,
179
194
requestValidationModeMember : mockRequestValidationModeMember ,
195
+ responseAlgorithms : mockResponseAlgorithms ,
180
196
} ) ( mockNext , { } ) ;
181
197
182
198
await handler ( mockArgs ) ;
183
- expect ( validateChecksumFromResponse ) . toHaveBeenCalledTimes ( 1 ) ;
199
+ expect ( validateChecksumFromResponse ) . toHaveBeenCalledWith ( mockResult . response , {
200
+ config : mockConfig ,
201
+ responseAlgorithms : mockResponseAlgorithms ,
202
+ } ) ;
184
203
} ) ;
185
204
} ) ;
0 commit comments