@@ -36,6 +36,14 @@ function navigationRow(page: Page, name: string): Locator {
3636 . first ( )
3737}
3838
39+ function navigationLink ( page : Page , name : string ) : Locator {
40+ return page . getByRole ( 'link' , { name, exact : true } )
41+ }
42+
43+ async function expectNavigationItemActive ( page : Page , name : string ) : Promise < void > {
44+ await expect ( navigationLink ( page , name ) ) . toHaveAttribute ( 'aria-current' , 'page' )
45+ }
46+
3947function uniqueCategoryName ( prefix : string , testInfo : TestInfo ) : string {
4048 return `Playwright ${ prefix } ${ testInfo . parallelIndex } -${ Date . now ( ) } `
4149}
@@ -63,7 +71,7 @@ async function createCategory(page: Page, name: string): Promise<void> {
6371 await input . press ( 'Enter' )
6472
6573 await expect ( navigationRow ( page , name ) ) . toBeVisible ( )
66- await expect ( navigationRow ( page , name ) ) . toHaveClass ( / a c t i v e / )
74+ await expectNavigationItemActive ( page , name )
6775}
6876
6977async function waitForNewNoteRoute ( page : Page , previousNoteId : number | null ) : Promise < number > {
@@ -104,7 +112,11 @@ async function openCategoryActions(page: Page, category: string): Promise<void>
104112 const row = navigationRow ( page , category )
105113
106114 await expect ( row ) . toBeVisible ( )
107- await row . getByRole ( 'button' , { name : 'Actions' , exact : true } ) . click ( )
115+ await row . hover ( )
116+
117+ const actionsButton = row . getByRole ( 'button' , { name : 'Actions' , exact : true } )
118+ await expect ( actionsButton ) . toBeVisible ( )
119+ await actionsButton . click ( )
108120}
109121
110122test . describe ( 'Category actions' , ( ) => {
@@ -130,7 +142,7 @@ test.describe('Category actions', () => {
130142 await renameInput . press ( 'Enter' )
131143
132144 await expect ( navigationRow ( page , renamedCategory ) ) . toBeVisible ( )
133- await expect ( navigationRow ( page , renamedCategory ) ) . toHaveClass ( / a c t i v e / )
145+ await expectNavigationItemActive ( page , renamedCategory )
134146 await expect ( navigationRow ( page , renamedCategory ) . locator ( '.app-navigation-entry__counter-wrapper' ) ) . toContainText ( '1' )
135147 await expect ( navigationRow ( page , category ) ) . toHaveCount ( 0 )
136148 await expect ( page ) . toHaveURL ( new RegExp ( `/note/${ noteId } (\\?.*)?$` ) )
@@ -151,7 +163,7 @@ test.describe('Category actions', () => {
151163 await page . getByRole ( 'button' , { name : 'Delete' , exact : true } ) . click ( )
152164
153165 await expect ( navigationRow ( page , category ) ) . toHaveCount ( 0 )
154- await expect ( navigationRow ( page , 'All notes' ) ) . toHaveClass ( / a c t i v e / )
166+ await expectNavigationItemActive ( page , 'All notes' )
155167 await expect ( page ) . not . toHaveURL ( deletedNoteUrl )
156168 } )
157169} )
0 commit comments