expect(router.currentRoute.value).toMatchObject({ params: { p: '0' } })
})
- it('casts null/undefined params to empty strings', async () => {
+ it('removes null/undefined params', async () => {
const { router } = await newRouter()
- expect(
- router.resolve({ name: 'optional', params: { p: undefined } })
- ).toMatchObject({
- params: {},
+
+ const route1 = router.resolve({
+ name: 'optional',
+ params: { p: undefined },
})
- expect(
- router.resolve({ name: 'optional', params: { p: null } })
- ).toMatchObject({
- params: {},
+ expect(route1.path).toBe('/optional')
+ expect(route1.params).toEqual({})
+
+ const route2 = router.resolve({
+ name: 'optional',
+ params: { p: null },
})
+ expect(route2.path).toBe('/optional')
+ expect(route2.params).toEqual({})
+
await router.push({ name: 'optional', params: { p: null } })
- expect(router.currentRoute.value).toMatchObject({ params: {} })
+ expect(router.currentRoute.value.params).toEqual({})
await router.push({ name: 'optional', params: {} })
})
}
// pass encoded values to the matcher, so it can produce encoded path and fullPath
matcherLocation = assign({}, rawLocation, {
- params: encodeParams(rawLocation.params),
+ params: encodeParams(targetParams),
})
// current location params are decoded, we need to encode them in case the
// matcher merges the params