@@ -4,22 +4,22 @@ import { BuildHandlerArguments } from "@aws-sdk/types";
4
4
import { PreviouslyResolved } from "./configuration" ;
5
5
import { ChecksumAlgorithm } from "./constants" ;
6
6
import { flexibleChecksumsMiddleware } from "./flexibleChecksumsMiddleware" ;
7
- import { getChecksum } from "./getChecksum" ;
8
7
import { getChecksumAlgorithmForRequest } from "./getChecksumAlgorithmForRequest" ;
9
8
import { getChecksumLocationName } from "./getChecksumLocationName" ;
10
9
import { hasHeader } from "./hasHeader" ;
11
10
import { isStreaming } from "./isStreaming" ;
12
11
import { selectChecksumAlgorithmFunction } from "./selectChecksumAlgorithmFunction" ;
12
+ import { stringHasher } from "./stringHasher" ;
13
13
import { validateChecksumFromResponse } from "./validateChecksumFromResponse" ;
14
14
15
15
jest . mock ( "@aws-sdk/protocol-http" ) ;
16
- jest . mock ( "./getChecksum" ) ;
17
16
jest . mock ( "./getChecksumAlgorithmForRequest" ) ;
18
17
jest . mock ( "./getChecksumLocationName" ) ;
19
18
jest . mock ( "./hasHeader" ) ;
20
19
jest . mock ( "./isStreaming" ) ;
21
- jest . mock ( "./validateChecksumFromResponse" ) ;
22
20
jest . mock ( "./selectChecksumAlgorithmFunction" ) ;
21
+ jest . mock ( "./stringHasher" ) ;
22
+ jest . mock ( "./validateChecksumFromResponse" ) ;
23
23
24
24
describe ( flexibleChecksumsMiddleware . name , ( ) => {
25
25
const mockNext = jest . fn ( ) ;
@@ -42,10 +42,9 @@ describe(flexibleChecksumsMiddleware.name, () => {
42
42
mockNext . mockResolvedValueOnce ( mockResult ) ;
43
43
const { isInstance } = HttpRequest ;
44
44
( isInstance as unknown as jest . Mock ) . mockReturnValue ( true ) ;
45
- ( getChecksum as jest . Mock ) . mockReturnValue ( mockChecksum ) ;
46
45
( getChecksumAlgorithmForRequest as jest . Mock ) . mockReturnValue ( ChecksumAlgorithm . MD5 ) ;
47
46
( getChecksumLocationName as jest . Mock ) . mockReturnValue ( mockChecksumLocationName ) ;
48
- ( hasHeader as jest . Mock ) . mockReturnValue ( false ) ;
47
+ ( hasHeader as jest . Mock ) . mockReturnValue ( true ) ;
49
48
( isStreaming as jest . Mock ) . mockReturnValue ( false ) ;
50
49
( selectChecksumAlgorithmFunction as jest . Mock ) . mockReturnValue ( mockChecksumAlgorithmFunction ) ;
51
50
} ) ;
@@ -67,7 +66,6 @@ describe(flexibleChecksumsMiddleware.name, () => {
67
66
describe ( "request checksum" , ( ) => {
68
67
afterEach ( ( ) => {
69
68
expect ( getChecksumAlgorithmForRequest ) . toHaveBeenCalledTimes ( 1 ) ;
70
- expect ( getChecksum ) . not . toHaveBeenCalled ( ) ;
71
69
} ) ;
72
70
73
71
it ( "if checksumAlgorithm is not defined" , async ( ) => {
@@ -86,7 +84,6 @@ describe(flexibleChecksumsMiddleware.name, () => {
86
84
...mockArgs ,
87
85
request : { ...mockRequest , headers : mockHeadersWithChecksumHeader } ,
88
86
} ;
89
- ( hasHeader as jest . Mock ) . mockReturnValue ( true ) ;
90
87
await handler ( mockArgsWithChecksumHeader ) ;
91
88
expect ( getChecksumLocationName ) . toHaveBeenCalledWith ( ChecksumAlgorithm . MD5 ) ;
92
89
expect ( selectChecksumAlgorithmFunction ) . toHaveBeenCalledWith ( ChecksumAlgorithm . MD5 , mockConfig ) ;
@@ -168,7 +165,15 @@ describe(flexibleChecksumsMiddleware.name, () => {
168
165
} ) ;
169
166
170
167
it ( "for non-streaming body" , async ( ) => {
171
- const handler = flexibleChecksumsMiddleware ( mockConfig , mockMiddlewareConfig ) ( mockNext , { } ) ;
168
+ const mockRawChecksum = Buffer . from ( mockChecksum ) ;
169
+ const mockBase64Encoder = jest . fn ( ) . mockReturnValue ( mockChecksum ) ;
170
+ ( stringHasher as jest . Mock ) . mockResolvedValue ( mockRawChecksum ) ;
171
+ ( hasHeader as jest . Mock ) . mockReturnValue ( false ) ;
172
+
173
+ const handler = flexibleChecksumsMiddleware (
174
+ { ...mockConfig , base64Encoder : mockBase64Encoder } ,
175
+ mockMiddlewareConfig
176
+ ) ( mockNext , { } ) ;
172
177
await handler ( mockArgs ) ;
173
178
expect ( hasHeader ) . toHaveBeenCalledTimes ( 1 ) ;
174
179
expect ( mockNext ) . toHaveBeenCalledWith ( {
@@ -179,7 +184,8 @@ describe(flexibleChecksumsMiddleware.name, () => {
179
184
} ,
180
185
} ) ;
181
186
expect ( hasHeader ) . toHaveBeenCalledWith ( mockChecksumLocationName , mockHeaders ) ;
182
- expect ( getChecksum ) . toHaveBeenCalledTimes ( 1 ) ;
187
+ expect ( stringHasher ) . toHaveBeenCalledWith ( mockChecksumAlgorithmFunction , mockRequest . body ) ;
188
+ expect ( mockBase64Encoder ) . toHaveBeenCalledWith ( mockRawChecksum ) ;
183
189
} ) ;
184
190
} ) ;
185
191
0 commit comments