1import { getNormalizedStatePath } from '../LocationProvider';
2
3describe(getNormalizedStatePath, () => {
4  // Ensure all values are correctly decoded
5  it(`returns the normalized path`, () => {
6    expect(
7      getNormalizedStatePath({
8        path: '/foo/bar%20baz?alpha=beta',
9        params: {
10          alpha: 'beta other',
11          beta: 'gamma',
12          charlie: 'delta%20echo',
13          delta: ['evan', 'foxtrot%20gamma', 'hotel india'],
14        },
15      })
16    ).toEqual({
17      segments: ['foo', 'bar baz'],
18      params: {
19        alpha: 'beta other',
20        beta: 'gamma',
21        charlie: 'delta echo',
22        // Ensure arrays are preserved (rest params).
23        delta: ['evan', 'foxtrot gamma', 'hotel india'],
24      },
25    });
26  });
27
28  it(`returns the normalized path with a basePath`, () => {
29    expect(
30      getNormalizedStatePath(
31        {
32          path: '/one/two/foo/bar%20baz?alpha=beta',
33          params: {
34            alpha: 'beta other',
35            beta: 'gamma',
36            charlie: 'delta%20echo',
37            delta: ['evan', 'foxtrot%20gamma', 'hotel india'],
38          },
39        },
40        '/one/two'
41      )
42    ).toEqual({
43      segments: ['foo', 'bar baz'],
44      params: {
45        alpha: 'beta other',
46        beta: 'gamma',
47        charlie: 'delta echo',
48        // Ensure arrays are preserved (rest params).
49        delta: ['evan', 'foxtrot gamma', 'hotel india'],
50      },
51    });
52  });
53});
54