1
- import { ChecksumAlgorithm } from "./constants" ;
1
+ import { DEFAULT_CHECKSUM_ALGORITHM , RequestChecksumCalculation } from "./constants" ;
2
2
import { getChecksumAlgorithmForRequest } from "./getChecksumAlgorithmForRequest" ;
3
3
import { CLIENT_SUPPORTED_ALGORITHMS } from "./types" ;
4
4
5
5
describe ( getChecksumAlgorithmForRequest . name , ( ) => {
6
6
const mockRequestAlgorithmMember = "mockRequestAlgorithmMember" ;
7
7
8
8
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
+ } ) ;
11
21
} ) ;
12
22
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
+ } ) ;
15
37
} ) ;
16
38
} ) ;
17
39
18
40
describe ( "when requestAlgorithmMember is not set in input" , ( ) => {
19
- const mockOptions = { requestAlgorithmMember : mockRequestAlgorithmMember } ;
41
+ const mockOptionsWithAlgoMember = { requestAlgorithmMember : mockRequestAlgorithmMember } ;
20
42
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
+ } ) ;
25
58
} ) ;
26
59
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
+ } ) ;
29
77
} ) ;
30
78
} ) ;
31
79
32
80
it ( "throws error if input[requestAlgorithmMember] if not supported by client" , ( ) => {
33
81
const unsupportedAlgo = "unsupportedAlgo" ;
34
82
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
+ } ;
36
88
expect ( ( ) => {
37
89
getChecksumAlgorithmForRequest ( mockInput , mockOptions ) ;
38
- } ) . toThrowError (
90
+ } ) . toThrow (
39
91
`The checksum algorithm "${ unsupportedAlgo } " is not supported by the client.` +
40
92
` Select one of ${ CLIENT_SUPPORTED_ALGORITHMS } .`
41
93
) ;
@@ -44,7 +96,11 @@ describe(getChecksumAlgorithmForRequest.name, () => {
44
96
describe ( "returns input[requestAlgorithmMember] if supported by client" , ( ) => {
45
97
it . each ( CLIENT_SUPPORTED_ALGORITHMS ) ( "Supported algorithm: %s" , ( supportedAlgorithm ) => {
46
98
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
+ } ;
48
104
expect ( getChecksumAlgorithmForRequest ( mockInput , mockOptions ) ) . toEqual ( supportedAlgorithm ) ;
49
105
} ) ;
50
106
} ) ;
0 commit comments