Skip to content

Commit bd518f5

Browse files
author
Dobromir Hristov
authored
Use Reference for NavMenuLink.vue (#426)
Fixes parts of rdar://97716953
1 parent ad61dcc commit bd518f5

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

src/components/NavMenuLink.vue

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,23 @@
1818
>
1919
<slot />
2020
</span>
21-
<router-link
21+
<Reference
2222
v-else
2323
class="nav-menu-link"
24-
:to="url"
24+
:url="url"
2525
tabindex="0"
2626
>
2727
<slot />
28-
</router-link>
28+
</Reference>
2929
</template>
3030

3131
<script>
3232
import { buildUrl } from 'docc-render/utils/url-helper';
33+
import Reference from 'docc-render/components/ContentNode/Reference.vue';
3334
3435
export default {
3536
name: 'NavMenuLink',
37+
components: { Reference },
3638
computed: {
3739
isCurrent: ({ $route, url }) => ((typeof url === 'string') ? (
3840
// Use the `buildUrl` to compare urls, as we dont want to compare unnecessary query params

tests/unit/components/NavMenuLink.spec.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
*/
1010

1111
import NavMenuLink from 'docc-render/components/NavMenuLink.vue';
12-
import { RouterLinkStub, shallowMount } from '@vue/test-utils';
12+
import { shallowMount } from '@vue/test-utils';
13+
import Reference from '@/components/ContentNode/Reference.vue';
1314

1415
const mountItem = attrs => shallowMount(NavMenuLink, {
15-
stubs: { RouterLinkStub },
1616
...attrs,
1717
});
1818

@@ -50,18 +50,17 @@ describe('NavMenuLink', () => {
5050
expect(wrapper.find('span.nav-menu-link').classes()).toContain('current');
5151
});
5252

53-
it('renders a <router-link> for local routes', () => {
53+
it('renders a <Reference> for local routes', () => {
5454
const wrapper = mountItem({
55-
propsData: { url: { name: 'blah' } },
56-
mocks: { $route: { name: 'foobar' } },
57-
stubs: { 'router-link': RouterLinkStub },
55+
propsData: { url: '/foo/bar' },
56+
mocks: { $route: { path: '/foo/baz', query: {} } },
5857
slots: { default: 'Blah' },
5958
});
6059

61-
const link = wrapper.find(RouterLinkStub);
60+
const link = wrapper.find(Reference);
6261
expect(link.exists()).toBe(true);
6362
expect(link.classes('nav-menu-link')).toBe(true);
64-
expect(link.props('to')).toEqual({ name: 'blah' });
63+
expect(link.props('url')).toEqual('/foo/bar');
6564
expect(link.text()).toBe('Blah');
6665
});
6766
});

0 commit comments

Comments
 (0)