UNPKG

1.73 kBJavaScriptView Raw
1import decodeUrlQuery from './decodeUrlQuery';
2import qs from 'qs';
3
4describe('decodeUrlQuery', () => {
5 it('with single value', () => {
6 const stringValue = 'stringValue';
7 const base64value = btoa(stringValue);
8 const search = `?key=${base64value}`;
9 const urlQuery = qs.parse(search, { ignoreQueryPrefix: true });
10
11 const decodedUrlQuery = decodeUrlQuery({
12 urlQuery,
13 parametersToBeDecoded: ['key']
14 });
15
16 expect(Object.keys(decodedUrlQuery).length).toBe(1);
17 expect(decodedUrlQuery['key']).toBe(stringValue);
18 });
19
20 it('with multiple values', () => {
21 const stringValues = ['stringValue1', 'stringValue2', 'stringValue3'];
22 const base64values = [btoa(stringValues[0]), btoa(stringValues[1])];
23 const search = `?key1=${base64values[0]}&key2=${base64values[1]}&key3=${stringValues[2]}`;
24 const urlQuery = qs.parse(search, { ignoreQueryPrefix: true });
25
26 const decodedUrlQuery = decodeUrlQuery({
27 urlQuery,
28 parametersToBeDecoded: ['key1', 'key2']
29 });
30
31 expect(decodedUrlQuery).toMatchObject({
32 key1: stringValues[0],
33 key2: stringValues[1],
34 key3: stringValues[2]
35 });
36 });
37
38 it('did not decode urlQuery value, missed param', () => {
39 const stringValues = ['stringValue1', 'stringValue2'];
40 const base64values = [btoa(stringValues[0]), btoa(stringValues[1])];
41 const search = `?key1=${base64values[0]}&key2=${base64values[1]}`;
42 const urlQuery = qs.parse(search, { ignoreQueryPrefix: true });
43
44 const decodedUrlQuery = decodeUrlQuery({
45 urlQuery,
46 parametersToBeDecoded: ['key1']
47 });
48
49 expect(decodedUrlQuery).toMatchObject({
50 key1: stringValues[0],
51 key2: base64values[1]
52 });
53 });
54});