/
getPathFromState.test.web.ts
68 lines (62 loc) · 1.33 KB
/
getPathFromState.test.web.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import getPathFromState from '../getPathFromState';
describe('hash support', () => {
it('appends hash to the path', () => {
const state = {
index: 0,
key: 'key',
routes: [
{
name: 'index',
path: '/',
params: {
'#': 'hash1',
},
},
],
stale: true,
type: 'stack',
};
const config = {
screens: {
index: '',
_sitemap: '_sitemap',
},
};
expect(getPathFromState(state, config)).toBe('/#hash1');
});
it('works with nested state, existing router and path params', () => {
const state = {
index: 1,
key: 'key',
routeNames: ['index', '[test]', '_sitemap', '+not-found'],
routes: [
{
key: 'key',
name: 'index',
params: undefined,
path: '/',
},
{
key: 'key',
name: '[test]',
params: {
test: 'hello-world',
query: 'true',
'#': 'a',
},
path: undefined,
},
],
stale: false,
type: 'stack',
};
const config = {
screens: {
'[test]': ':test',
index: '',
_sitemap: '_sitemap',
},
};
expect(getPathFromState(state, config)).toBe('/hello-world?query=true#a');
});
});