Skip to content

Commit d05be88

Browse files
committed
fix: 🐛 Exporte tous les composants DsfrNavigation*
1 parent a746d25 commit d05be88

File tree

5 files changed

+77
-6
lines changed

5 files changed

+77
-6
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { render } from '@testing-library/vue'
2+
import { createRouter, createWebHistory } from 'vue-router'
3+
4+
import DsfrNavigationMegaMenuCategory from './DsfrNavigationMegaMenuCategory.vue'
5+
6+
const router = createRouter({
7+
history: createWebHistory('/'),
8+
routes: [{
9+
path: '/',
10+
name: 'Home',
11+
component: { template: '<div />' },
12+
}],
13+
})
14+
15+
const VIcon = { props: ['name'], template: '<i :class="name"></i>' }
16+
17+
describe('DsfrNavigationMegaMenuCategory', () => {
18+
it('should render a navigation mega menu', async () => {
19+
const title = 'Nom de catégorie'
20+
const links = [
21+
{
22+
text: 'Lien 1',
23+
to: '/',
24+
},
25+
{
26+
text: 'Lien 2',
27+
to: '/',
28+
},
29+
{
30+
text: 'Lien 3',
31+
to: '/',
32+
},
33+
{
34+
text: 'Lien 4',
35+
to: '/',
36+
},
37+
{
38+
text: 'Lien 5',
39+
to: '/',
40+
},
41+
]
42+
43+
const { getAllByTestId, getByText } = render(DsfrNavigationMegaMenuCategory, {
44+
global: {
45+
plugins: [router],
46+
components: {
47+
VIcon,
48+
},
49+
},
50+
props: {
51+
title,
52+
links,
53+
},
54+
})
55+
56+
await router.isReady()
57+
58+
const linkEls = getAllByTestId('nav-router-link')
59+
const h5El = getByText(title)
60+
61+
expect(h5El).toHaveClass('fr-nav__link')
62+
expect(linkEls.length).toBe(links.length)
63+
})
64+
})

src/components/DsfrNavigation/DsfrNavigationMenu.stories.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default {
1010
},
1111
id: {
1212
control: 'string',
13-
description: 'Valeur de l’attribut `id` de ce sous-menu.\n\n *N.B. : Il est recommandé de ne pas le donner, la bibliothèque lui en donnera un aléatoire*.',
13+
description: 'Valeur de l’attribut `id` de ce sous-menu. *N.B. : Il est recommandé de ne pas le donner, la bibliothèque lui en donnera un aléatoire*.',
1414
},
1515
links: {
1616
control: 'array',
@@ -22,7 +22,7 @@ export default {
2222
},
2323
expandedId: {
2424
control: 'text',
25-
description: 'Indique l’id de l’élément "ouvert" ou "déplié" dans le menu.\n\nPermet au composant de savoir s’il doit être déplié (si `expandedId` est identique à son `id`) ou non (si `expandedId` est différent de son `id`)',
25+
description: 'Indique l’id de l’élément "ouvert" ou "déplié" dans le menu. Permet au composant de savoir s’il doit être déplié (si `expandedId` est identique à son `id`) ou non (si `expandedId` est différent de son `id`)',
2626
},
2727
},
2828
}

src/components/DsfrNavigation/DsfrNavigationMenu.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export default {
2222
},
2323
links: {
2424
type: Array,
25-
default: () => [],
25+
required: true,
2626
},
2727
expandedId: {
2828
type: String,

src/components/DsfrNavigation/DsfrNavigationMenuItem.stories.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ export default {
1414
},
1515
expandedId: {
1616
control: 'text',
17-
description: 'Valeur de l’id du menu déroulé.\n\n*N.B. : Ne fait pas partie du composant.*',
17+
description: 'Valeur de l’id du menu déroulé. *N.B. : Ne fait pas partie de ce composant.*',
1818
},
1919
menuId: {
2020
control: 'string',
21-
description: 'Valeur de l’attribut `id` de ce sous-menu. *N.B. : Il est recommandé de ne pas le donner, la bibliothèque lui en donnera un aléatoire*.',
21+
description: 'Valeur de l’attribut `id` de ce sous-menu. *N.B. : Il est recommandé de ne pas le donner, la bibliothèque lui en donnera un aléatoire*. *N.B. : Ne fait pas partie de ce composant.*',
2222
},
2323
id: {
2424
control: 'string',
2525
description: 'Valeur de l’attribut `id` de cet item de menu de navigation.',
2626
},
2727
active: {
2828
control: 'boolean',
29-
description: 'Indique l’élément est actif (l’utilisateur est actuellement sur la page pointée par cet item de menu de navigation).',
29+
description: 'Indique si l’élément est actif (l’utilisateur est actuellement sur la page pointée par cet item de menu de navigation).',
3030
},
3131
},
3232
}

src/components/index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ export { default as DsfrFooter } from './DsfrFooter/DsfrFooter.vue'
1515
export { default as DsfrFooterPartners } from './DsfrFooter/DsfrFooterPartners.vue'
1616
export { default as DsfrLogo } from './DsfrLogo/DsfrLogo.vue'
1717
export { default as DsfrModal } from './DsfrModal/DsfrModal.vue'
18+
export { default as DsfrNavigation } from './DsfrNavigation/DsfrNavigation.vue'
19+
export { default as DsfrNavigationItem } from './DsfrNavigation/DsfrNavigationItem.vue'
20+
export { default as DsfrNavigationMegaMenu } from './DsfrNavigation/DsfrNavigationMegaMenu.vue'
21+
export { default as DsfrNavigationMegaMenuCategory } from './DsfrNavigation/DsfrNavigationMegaMenuCategory.vue'
22+
export { default as DsfrNavigationMenu } from './DsfrNavigation/DsfrNavigationMenu.vue'
23+
export { default as DsfrNavigationMenuItem } from './DsfrNavigation/DsfrNavigationMenuItem.vue'
24+
export { default as DsfrNavigationMenuLink } from './DsfrNavigation/DsfrNavigationMenuLink.vue'
1825
export { default as DsfrPicture } from './DsfrMedia/DsfrPicture.vue'
1926
export { default as DsfrRadioButton } from './DsfrRadioButton/DsfrRadioButton.vue'
2027
export { default as DsfrRadioButtonSet } from './DsfrRadioButton/DsfrRadioButtonSet.vue'

0 commit comments

Comments
 (0)