1- import { ChecksumAlgorithm } from "./constants" ;
1+ import { DEFAULT_CHECKSUM_ALGORITHM , RequestChecksumCalculation } from "./constants" ;
22import { getChecksumAlgorithmForRequest } from "./getChecksumAlgorithmForRequest" ;
33import { CLIENT_SUPPORTED_ALGORITHMS } from "./types" ;
44
55describe ( getChecksumAlgorithmForRequest . name , ( ) => {
66 const mockRequestAlgorithmMember = "mockRequestAlgorithmMember" ;
77
88 describe ( "when requestAlgorithmMember is not provided" , ( ) => {
9- it ( "returns MD5 if requestChecksumRequired is set" , ( ) => {
10- expect ( getChecksumAlgorithmForRequest ( { } , { requestChecksumRequired : true } ) ) . toEqual ( ChecksumAlgorithm . MD5 ) ;
9+ describe ( `when requestChecksumCalculation is '${ RequestChecksumCalculation . WHEN_REQUIRED } '` , ( ) => {
10+ const mockOptions = { requestChecksumCalculation : RequestChecksumCalculation . WHEN_REQUIRED } ;
11+
12+ it ( `returns ${ DEFAULT_CHECKSUM_ALGORITHM } if requestChecksumRequired is set` , ( ) => {
13+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : true } ) ) . toEqual (
14+ DEFAULT_CHECKSUM_ALGORITHM
15+ ) ;
16+ } ) ;
17+
18+ it ( "returns undefined if requestChecksumRequired is false" , ( ) => {
19+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : false } ) ) . toBeUndefined ( ) ;
20+ } ) ;
1121 } ) ;
1222
13- it ( "returns undefined if requestChecksumRequired is false" , ( ) => {
14- expect ( getChecksumAlgorithmForRequest ( { } , { requestChecksumRequired : false } ) ) . toBeUndefined ( ) ;
23+ describe ( `when requestChecksumCalculation is '${ RequestChecksumCalculation . WHEN_SUPPORTED } '` , ( ) => {
24+ const mockOptions = { requestChecksumCalculation : RequestChecksumCalculation . WHEN_SUPPORTED } ;
25+
26+ it ( `returns ${ DEFAULT_CHECKSUM_ALGORITHM } if requestChecksumRequired is set` , ( ) => {
27+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : true } ) ) . toEqual (
28+ DEFAULT_CHECKSUM_ALGORITHM
29+ ) ;
30+ } ) ;
31+
32+ it ( `returns ${ DEFAULT_CHECKSUM_ALGORITHM } if requestChecksumRequired is false` , ( ) => {
33+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : false } ) ) . toEqual (
34+ DEFAULT_CHECKSUM_ALGORITHM
35+ ) ;
36+ } ) ;
1537 } ) ;
1638 } ) ;
1739
1840 describe ( "when requestAlgorithmMember is not set in input" , ( ) => {
19- const mockOptions = { requestAlgorithmMember : mockRequestAlgorithmMember } ;
41+ const mockOptionsWithAlgoMember = { requestAlgorithmMember : mockRequestAlgorithmMember } ;
2042
21- it ( "returns MD5 if requestChecksumRequired is set" , ( ) => {
22- expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : true } ) ) . toEqual (
23- ChecksumAlgorithm . MD5
24- ) ;
43+ describe ( `when requestChecksumCalculation is '${ RequestChecksumCalculation . WHEN_REQUIRED } '` , ( ) => {
44+ const mockOptions = {
45+ ...mockOptionsWithAlgoMember ,
46+ requestChecksumCalculation : RequestChecksumCalculation . WHEN_REQUIRED ,
47+ } ;
48+
49+ it ( `returns ${ DEFAULT_CHECKSUM_ALGORITHM } if requestChecksumRequired is set` , ( ) => {
50+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : true } ) ) . toEqual (
51+ DEFAULT_CHECKSUM_ALGORITHM
52+ ) ;
53+ } ) ;
54+
55+ it ( "returns undefined if requestChecksumRequired is false" , ( ) => {
56+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : false } ) ) . toBeUndefined ( ) ;
57+ } ) ;
2558 } ) ;
2659
27- it ( "returns undefined if requestChecksumRequired is false" , ( ) => {
28- expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : false } ) ) . toBeUndefined ( ) ;
60+ describe ( `when requestChecksumCalculation is '${ RequestChecksumCalculation . WHEN_SUPPORTED } '` , ( ) => {
61+ const mockOptions = {
62+ ...mockOptionsWithAlgoMember ,
63+ requestChecksumCalculation : RequestChecksumCalculation . WHEN_SUPPORTED ,
64+ } ;
65+
66+ it ( `returns ${ DEFAULT_CHECKSUM_ALGORITHM } if requestChecksumRequired is set` , ( ) => {
67+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : true } ) ) . toEqual (
68+ DEFAULT_CHECKSUM_ALGORITHM
69+ ) ;
70+ } ) ;
71+
72+ it ( `returns ${ DEFAULT_CHECKSUM_ALGORITHM } if requestChecksumRequired is false` , ( ) => {
73+ expect ( getChecksumAlgorithmForRequest ( { } , { ...mockOptions , requestChecksumRequired : false } ) ) . toEqual (
74+ DEFAULT_CHECKSUM_ALGORITHM
75+ ) ;
76+ } ) ;
2977 } ) ;
3078 } ) ;
3179
3280 it ( "throws error if input[requestAlgorithmMember] if not supported by client" , ( ) => {
3381 const unsupportedAlgo = "unsupportedAlgo" ;
3482 const mockInput = { [ mockRequestAlgorithmMember ] : unsupportedAlgo } ;
35- const mockOptions = { requestChecksumRequired : true , requestAlgorithmMember : mockRequestAlgorithmMember } ;
83+ const mockOptions = {
84+ requestChecksumRequired : true ,
85+ requestAlgorithmMember : mockRequestAlgorithmMember ,
86+ requestChecksumCalculation : RequestChecksumCalculation . WHEN_REQUIRED ,
87+ } ;
3688 expect ( ( ) => {
3789 getChecksumAlgorithmForRequest ( mockInput , mockOptions ) ;
38- } ) . toThrowError (
90+ } ) . toThrow (
3991 `The checksum algorithm "${ unsupportedAlgo } " is not supported by the client.` +
4092 ` Select one of ${ CLIENT_SUPPORTED_ALGORITHMS } .`
4193 ) ;
@@ -44,7 +96,11 @@ describe(getChecksumAlgorithmForRequest.name, () => {
4496 describe ( "returns input[requestAlgorithmMember] if supported by client" , ( ) => {
4597 it . each ( CLIENT_SUPPORTED_ALGORITHMS ) ( "Supported algorithm: %s" , ( supportedAlgorithm ) => {
4698 const mockInput = { [ mockRequestAlgorithmMember ] : supportedAlgorithm } ;
47- const mockOptions = { requestChecksumRequired : true , requestAlgorithmMember : mockRequestAlgorithmMember } ;
99+ const mockOptions = {
100+ requestChecksumRequired : true ,
101+ requestAlgorithmMember : mockRequestAlgorithmMember ,
102+ requestChecksumCalculation : RequestChecksumCalculation . WHEN_REQUIRED ,
103+ } ;
48104 expect ( getChecksumAlgorithmForRequest ( mockInput , mockOptions ) ) . toEqual ( supportedAlgorithm ) ;
49105 } ) ;
50106 } ) ;
0 commit comments