import type { Locator, Page } from '@playwright/test' export type AdminLinkSlug = 'users' | 'roles' | 'sites' | 'audit-log' /** * Page Object de la sidebar (MalioSidebar), scope sur les items "admin". * * Strategie selecteur : `a[href=...]` plutot que le texte i18n. Le slug de * route ne change pas quand on retraduit ou renomme une entree — c'est le * selecteur le plus stable pour cette suite. * * Si un jour la sidebar change et les slugs bougent, on met a jour CE * fichier uniquement ; les specs continuent de passer. */ export class SidebarComponent { readonly page: Page constructor(page: Page) { this.page = page } adminLink(slug: AdminLinkSlug): Locator { return this.page.locator(`a[href="/admin/${slug}"]`) } accountDashboardLink(): Locator { return this.page.locator('a[href="/"]').first() } logoutLink(): Locator { return this.page.locator('a[href="/logout"]') } }