1+ import { expect , within } from '@storybook/test'
2+ import type { Meta , StoryFn } from '@storybook/vue3'
3+
14import DsfrBreadcrumb from './DsfrBreadcrumb.vue'
25
36/**
@@ -26,7 +29,7 @@ export default {
2629 description : 'Label du bouton d\'affichage du fil d’Ariane' ,
2730 } ,
2831 } ,
29- }
32+ } as Meta < typeof DsfrBreadcrumb >
3033
3134const secondLinkText = 'Lien deux'
3235const currentPageText = 'Lien 3 avec plein de texte et patati et patata'
@@ -45,7 +48,7 @@ const links = [
4548 } ,
4649]
4750
48- export const FilDAriane = ( args ) => ( {
51+ export const FilDAriane : StoryFn < typeof DsfrBreadcrumb > = ( args ) => ( {
4952 components : { DsfrBreadcrumb } ,
5053 data ( ) {
5154 return args
@@ -56,7 +59,22 @@ export const FilDAriane = (args) => ({
5659 />
5760 ` ,
5861} )
59-
6062FilDAriane . args = {
6163 links,
6264}
65+ FilDAriane . play = async ( { canvasElement } ) => {
66+ const canvas = within ( canvasElement )
67+ const breadcrumb1 = canvas . getByText ( FilDAriane . args ?. links ?. at ( 0 ) ?. text as string )
68+ expect ( breadcrumb1 ) . toBeVisible ( )
69+ expect ( breadcrumb1 ) . toHaveProperty ( 'href' )
70+ expect ( breadcrumb1 ) . not . toHaveAttribute ( 'aria-current' , 'page' )
71+ const breadcrumb2 = canvas . getByText ( FilDAriane . args ?. links ?. at ( 1 ) ?. text as string )
72+ expect ( breadcrumb2 ) . toBeVisible ( )
73+ expect ( breadcrumb2 ) . toHaveAttribute ( 'href' )
74+ expect ( breadcrumb2 . href ) . toContain ( FilDAriane . args ?. links ?. at ( 1 ) ?. to )
75+ expect ( breadcrumb2 ) . not . toHaveAttribute ( 'aria-current' , 'page' )
76+ const breadcrumb3 = canvas . getByText ( FilDAriane . args ?. links ?. at ( 2 ) ?. text as string )
77+ expect ( breadcrumb3 ) . toBeVisible ( )
78+ expect ( breadcrumb3 ) . not . toHaveAttribute ( 'href' )
79+ expect ( breadcrumb3 ) . toHaveAttribute ( 'aria-current' , 'page' )
80+ }
0 commit comments