@@ -67,31 +67,33 @@ describe(flexibleChecksumsMiddleware.name, () => {
6767 } ) ;
6868
6969 describe ( "request checksum" , ( ) => {
70- afterEach ( ( ) => {
71- expect ( getChecksumAlgorithmForRequest ) . toHaveBeenCalledTimes ( 1 ) ;
72- } ) ;
73-
7470 it ( "if checksumAlgorithm is not defined" , async ( ) => {
7571 vi . mocked ( getChecksumAlgorithmForRequest ) . mockReturnValue ( undefined ) ;
7672 const handler = flexibleChecksumsMiddleware ( mockConfig , mockMiddlewareConfig ) ( mockNext , { } ) ;
7773 await handler ( mockArgs ) ;
7874 expect ( getChecksumLocationName ) . not . toHaveBeenCalled ( ) ;
7975 expect ( mockNext ) . toHaveBeenCalledWith ( mockArgs ) ;
8076 expect ( selectChecksumAlgorithmFunction ) . not . toHaveBeenCalled ( ) ;
77+ expect ( getChecksumAlgorithmForRequest ) . toHaveBeenCalledTimes ( 1 ) ;
8178 } ) ;
8279
83- it ( "if header is already present" , async ( ) => {
80+ it . each ( [
81+ ...Object . values ( ChecksumAlgorithm ) . map ( ( val ) => `x-amz-checksum-${ val . toLowerCase ( ) } ` ) , // all current checksum locations
82+ ...Object . values ( ChecksumAlgorithm ) . map ( ( val ) => `X-AMZ-CHECKSUM-${ val } ` ) , // all current checksum locations in uppercase
83+ `x-amz-checksum-emoji` , // any checksum post prefix
84+ `X-AMZ-CHECKSUM-EMOJI` , // any checksum post prefix in uppercase
85+ ] ) ( "skip if header '%s' is already present" , async ( headerName ) => {
8486 const handler = flexibleChecksumsMiddleware ( mockConfig , mockMiddlewareConfig ) ( mockNext , { } ) ;
85- const mockHeadersWithChecksumHeader = { ...mockHeaders , [ mockChecksumLocationName ] : "mockHeaderValue" } ;
87+ const mockHeadersWithChecksumHeader = { ...mockHeaders , [ headerName ] : "mockHeaderValue" } ;
8688 const mockArgsWithChecksumHeader = {
8789 ...mockArgs ,
8890 request : { ...mockRequest , headers : mockHeadersWithChecksumHeader } ,
8991 } ;
9092 await handler ( mockArgsWithChecksumHeader ) ;
91- expect ( getChecksumLocationName ) . toHaveBeenCalledWith ( ChecksumAlgorithm . CRC32 ) ;
92- expect ( selectChecksumAlgorithmFunction ) . toHaveBeenCalledWith ( ChecksumAlgorithm . CRC32 , mockConfig ) ;
93+ expect ( getChecksumLocationName ) . not . toHaveBeenCalled ( ) ;
94+ expect ( selectChecksumAlgorithmFunction ) . not . toHaveBeenCalled ( ) ;
95+ expect ( hasHeader ) . not . toHaveBeenCalled ( ) ;
9396 expect ( mockNext ) . toHaveBeenCalledWith ( mockArgsWithChecksumHeader ) ;
94- expect ( hasHeader ) . toHaveBeenCalledWith ( mockChecksumLocationName , mockHeadersWithChecksumHeader ) ;
9597 } ) ;
9698 } ) ;
9799 } ) ;
0 commit comments