]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
fix(link): use replace prop
authorEduardo San Martin Morote <posva13@gmail.com>
Sat, 9 Jan 2021 09:47:30 +0000 (10:47 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Sat, 9 Jan 2021 09:47:30 +0000 (10:47 +0100)
Close #702

__tests__/RouterLink.spec.ts
src/RouterLink.ts

index 4aa877c93fbf502935226ed12cb50b8384750e81..79bec2be238c394ac922acf3864cb0f95ece826b 100644 (file)
@@ -369,6 +369,7 @@ async function factory(
     options: {} as Partial<RouterOptions>,
     resolve: jest.fn(),
     push: jest.fn().mockResolvedValue(resolvedLocation),
+    replace: jest.fn().mockResolvedValue(resolvedLocation),
   }
   router.resolve.mockReturnValueOnce(resolvedLocation)
 
@@ -799,6 +800,16 @@ describe('RouterLink', () => {
     expect(router.push).toHaveBeenCalledTimes(1)
   })
 
+  it('calls router.replace when clicked with replace prop', async () => {
+    const { router, wrapper } = await factory(
+      START_LOCATION_NORMALIZED,
+      { to: locations.basic.string, replace: true },
+      locations.basic.normalized
+    )
+    wrapper.find('a')!.trigger('click')
+    expect(router.replace).toHaveBeenCalledTimes(1)
+  })
+
   it('calls router.push with the correct location for aliases', async () => {
     const { router, wrapper } = await factory(
       START_LOCATION_NORMALIZED,
index 8be402f5c00850ed179d33eeda9ce2bb62179efe..f424c3dc16320ec4ced0de9090310f4e3e9be15e 100644 (file)
@@ -132,6 +132,7 @@ export const RouterLinkImpl = /*#__PURE__*/ defineComponent({
       type: [String, Object] as PropType<RouteLocationRaw>,
       required: true,
     },
+    replace: Boolean,
     activeClass: String,
     // inactiveClass: String,
     exactActiveClass: String,