import { expect, test } from '@playwright/test' test('portfolio workflow covers navigation, remediation, a scan lifecycle and export', async ({ page }) => { await page.goto('/') await expect(page.getByRole('heading', { name: /portfolio signal/i })).toBeVisible() await expect(page.getByRole('heading', { name: 'Remediation Center' })).toBeVisible() await expect(page.getByText('A deterministic package-manager lockfile was not found for this workspace.')).toBeVisible() await page.locator('.remediation-center').getByRole('button', { name: /Jens\/Alpha/ }).click() await expect(page.getByRole('heading', { name: 'Jens/Alpha' })).toBeVisible() await page.getByRole('link', { name: 'Dashboard', exact: true }).click() await page.getByRole('button', { name: /open repository explorer/i }).click() await expect(page.getByText('25 matching 25 repositories')).toBeVisible() await page.getByRole('button', { name: 'Visual grid' }).click() await page.getByRole('button', { name: 'Pin Jens/Alpha' }).click() await expect(page.getByRole('button', { name: 'Remove Jens/Alpha from pinned repositories' })).toBeVisible() await page.getByRole('button', { name: 'Table' }).click() await expect(page.getByText('Page 1 / 2')).toBeVisible() await page.getByRole('button', { name: 'Next' }).click() await expect(page.getByText('Page 2 / 2')).toBeVisible() await page.getByLabel('Filter by readiness').selectOption('blocked') await expect(page.getByText('1 matching 25 repositories')).toBeVisible() await page.getByRole('link', { name: 'Open Jens/Alpha' }).click() await expect(page.getByRole('heading', { name: 'Jens/Alpha' })).toBeVisible() await page.getByRole('link', { name: /findings/i }).click() await expect(page.getByText('No lockfile was retained for the declared dependencies.')).toBeVisible() await page.getByRole('link', { name: /architecture/i }).click() await expect(page.getByText('Local import and dependency topology')).toBeVisible() await page.getByRole('link', { name: /history/i }).click() await expect(page.getByText('Repository health over time')).toBeVisible() await page.getByRole('button', { name: 'Scan now' }).click() await expect(page.getByText('Repository analysis completed.')).toBeVisible({ timeout: 10_000 }) await page.getByText('Reports').click() const download = page.waitForEvent('download') await page.getByRole('button', { name: 'Export JSON' }).click() await expect(download).resolves.toBeTruthy() await page.keyboard.press('Control+k') await page.getByPlaceholder('Search repositories…').fill('Beta') await page.keyboard.press('ArrowDown') await page.keyboard.press('Enter') await expect(page.getByRole('heading', { name: 'Jens/Beta', exact: true })).toBeVisible() })