@@ -7,10 +7,12 @@ describe('Location utils', () => {
7
7
expect ( loc . _normalized ) . toBe ( true )
8
8
expect ( loc . path ) . toBe ( '/abc' )
9
9
expect ( loc . hash ) . toBe ( '#hello' )
10
- expect ( JSON . stringify ( loc . query ) ) . toBe ( JSON . stringify ( {
11
- foo : 'bar' ,
12
- baz : 'qux'
13
- } ) )
10
+ expect ( JSON . stringify ( loc . query ) ) . toBe (
11
+ JSON . stringify ( {
12
+ foo : 'bar' ,
13
+ baz : 'qux'
14
+ } )
15
+ )
14
16
} )
15
17
16
18
it ( 'empty string' , function ( ) {
@@ -36,23 +38,31 @@ describe('Location utils', () => {
36
38
expect ( loc . _normalized ) . toBe ( true )
37
39
expect ( loc . path ) . toBe ( '/root/abc' )
38
40
expect ( loc . hash ) . toBe ( '#hello' )
39
- expect ( JSON . stringify ( loc . query ) ) . toBe ( JSON . stringify ( {
40
- foo : 'bar' ,
41
- baz : 'qux'
42
- } ) )
41
+ expect ( JSON . stringify ( loc . query ) ) . toBe (
42
+ JSON . stringify ( {
43
+ foo : 'bar' ,
44
+ baz : 'qux'
45
+ } )
46
+ )
43
47
} )
44
48
45
49
it ( 'relative append' , ( ) => {
46
- const loc = normalizeLocation ( 'abc?foo=bar&baz=qux#hello' , {
47
- path : '/root/next'
48
- } , true )
50
+ const loc = normalizeLocation (
51
+ 'abc?foo=bar&baz=qux#hello' ,
52
+ {
53
+ path : '/root/next'
54
+ } ,
55
+ true
56
+ )
49
57
expect ( loc . _normalized ) . toBe ( true )
50
58
expect ( loc . path ) . toBe ( '/root/next/abc' )
51
59
expect ( loc . hash ) . toBe ( '#hello' )
52
- expect ( JSON . stringify ( loc . query ) ) . toBe ( JSON . stringify ( {
53
- foo : 'bar' ,
54
- baz : 'qux'
55
- } ) )
60
+ expect ( JSON . stringify ( loc . query ) ) . toBe (
61
+ JSON . stringify ( {
62
+ foo : 'bar' ,
63
+ baz : 'qux'
64
+ } )
65
+ )
56
66
} )
57
67
58
68
it ( 'relative query & hash' , ( ) => {
@@ -62,46 +72,92 @@ describe('Location utils', () => {
62
72
expect ( loc . _normalized ) . toBe ( true )
63
73
expect ( loc . path ) . toBe ( '/root/next' )
64
74
expect ( loc . hash ) . toBe ( '#hello' )
65
- expect ( JSON . stringify ( loc . query ) ) . toBe ( JSON . stringify ( {
66
- foo : 'bar' ,
67
- baz : 'qux'
68
- } ) )
75
+ expect ( JSON . stringify ( loc . query ) ) . toBe (
76
+ JSON . stringify ( {
77
+ foo : 'bar' ,
78
+ baz : 'qux'
79
+ } )
80
+ )
69
81
} )
70
82
71
83
it ( 'relative params (named)' , ( ) => {
72
- const loc = normalizeLocation ( { params : { lang : 'fr' } } , {
73
- name : 'hello' ,
74
- params : { lang : 'en' , id : 'foo' }
75
- } )
84
+ const loc = normalizeLocation (
85
+ { params : { lang : 'fr' } } ,
86
+ {
87
+ name : 'hello' ,
88
+ params : { lang : 'en' , id : 'foo' }
89
+ }
90
+ )
76
91
expect ( loc . _normalized ) . toBe ( true )
77
92
expect ( loc . name ) . toBe ( 'hello' )
78
93
expect ( loc . params ) . toEqual ( { lang : 'fr' , id : 'foo' } )
79
94
} )
80
95
81
96
it ( 'relative params (non-named)' , ( ) => {
82
- const loc = normalizeLocation ( { params : { lang : 'fr' } } , {
83
- path : '/en/foo' ,
84
- params : { lang : 'en' , id : 'foo' } ,
85
- matched : [ { path : '/:lang(en|fr)/:id' } ]
86
- } )
97
+ const loc = normalizeLocation (
98
+ { params : { lang : 'fr' } } ,
99
+ {
100
+ path : '/en/foo' ,
101
+ params : { lang : 'en' , id : 'foo' } ,
102
+ matched : [ { path : '/:lang(en|fr)/:id' } ]
103
+ }
104
+ )
87
105
expect ( loc . _normalized ) . toBe ( true )
88
106
expect ( loc . path ) . toBe ( '/fr/foo' )
89
107
} )
90
108
109
+ it ( 'relative query named' , ( ) => {
110
+ const loc = normalizeLocation (
111
+ { query : { lang : 'fr' } } ,
112
+ {
113
+ name : 'hello' ,
114
+ hash : '#foo' ,
115
+ params : { id : 'foo' }
116
+ }
117
+ )
118
+ expect ( loc . _normalized ) . toBe ( true )
119
+ expect ( loc . name ) . toBe ( 'hello' )
120
+ expect ( loc . params ) . toEqual ( { id : 'foo' } )
121
+ expect ( loc . query ) . toEqual ( { lang : 'fr' } )
122
+ expect ( loc . hash ) . toBe ( undefined )
123
+ } )
124
+
125
+ it ( 'relative hash named' , ( ) => {
126
+ const loc = normalizeLocation (
127
+ { hash : '#foo' } ,
128
+ {
129
+ name : 'hello' ,
130
+ query : { lang : 'fr' } ,
131
+ params : { id : 'foo' }
132
+ }
133
+ )
134
+ expect ( loc . _normalized ) . toBe ( true )
135
+ expect ( loc . name ) . toBe ( 'hello' )
136
+ expect ( loc . params ) . toEqual ( { id : 'foo' } )
137
+ expect ( loc . query ) . toBe ( undefined )
138
+ expect ( loc . hash ) . toBe ( '#foo' )
139
+ } )
140
+
91
141
it ( 'custom regex can be case insensitive' , ( ) => {
92
- const loc = normalizeLocation ( { params : { lang : 'FR' } } , {
93
- path : '/en/foo' ,
94
- params : { lang : 'en' , id : 'foo' } ,
95
- matched : [ { path : '/:lang(en|fr)/:id' } ]
96
- } )
142
+ const loc = normalizeLocation (
143
+ { params : { lang : 'FR' } } ,
144
+ {
145
+ path : '/en/foo' ,
146
+ params : { lang : 'en' , id : 'foo' } ,
147
+ matched : [ { path : '/:lang(en|fr)/:id' } ]
148
+ }
149
+ )
97
150
expect ( loc . _normalized ) . toBe ( true )
98
151
expect ( loc . path ) . toBe ( '/FR/foo' )
99
152
} )
100
153
101
154
it ( 'relative append' , ( ) => {
102
155
const loc = normalizeLocation ( { path : 'a' } , { path : '/b' } , true )
103
156
expect ( loc . path ) . toBe ( '/b/a' )
104
- const loc2 = normalizeLocation ( { path : 'a' , append : true } , { path : '/b' } )
157
+ const loc2 = normalizeLocation (
158
+ { path : 'a' , append : true } ,
159
+ { path : '/b' }
160
+ )
105
161
expect ( loc2 . path ) . toBe ( '/b/a' )
106
162
} )
107
163
@@ -114,10 +170,12 @@ describe('Location utils', () => {
114
170
expect ( loc . _normalized ) . toBe ( true )
115
171
expect ( loc . path ) . toBe ( '/abc' )
116
172
expect ( loc . hash ) . toBe ( '#lol' )
117
- expect ( JSON . stringify ( loc . query ) ) . toBe ( JSON . stringify ( {
118
- foo : 'bar' ,
119
- baz : 'qux'
120
- } ) )
173
+ expect ( JSON . stringify ( loc . query ) ) . toBe (
174
+ JSON . stringify ( {
175
+ foo : 'bar' ,
176
+ baz : 'qux'
177
+ } )
178
+ )
121
179
} )
122
180
123
181
it ( 'skip normalized' , ( ) => {
0 commit comments