import { test, expect } from '@playwright/test'; test.describe('Alerts', () => { test('can view alerts page', async ({ page }) => { await page.goto('/alerts'); await expect(page).toHaveURL(/\/alerts/); await expect(page.locator('body')).toBeVisible(); }); test('can filter alerts by status', async ({ page }) => { await page.goto('/alerts'); // Look for filter tabs/buttons (Active, Resolved, All, etc.) const filterTabs = page.locator( '[role="tab"], button:has-text("Active"), button:has-text("Resolved"), button:has-text("All")' ); if ((await filterTabs.count()) > 0) { await filterTabs.first().click(); await page.waitForTimeout(500); } }); test('can filter alerts by severity', async ({ page }) => { await page.goto('/alerts'); // Look for severity filters (Critical, Warning, Info, etc.) const severityFilter = page.locator( 'button:has-text("Critical"), button:has-text("Warning"), select[name*="severity"]' ).first(); if (await severityFilter.isVisible()) { await severityFilter.click(); await page.waitForTimeout(500); } }); test('can view alert details', async ({ page }) => { await page.goto('/alerts'); // Find first alert item const firstAlert = page.locator('[data-alert], tr, [role="listitem"]').first(); if (await firstAlert.isVisible()) { await firstAlert.click(); // Alert details might open in a modal or navigate to a detail page await page.waitForTimeout(500); } }); test('can acknowledge an alert', async ({ page }) => { await page.goto('/alerts'); // Look for acknowledge button const ackButton = page.locator( 'button:has-text("Acknowledge"), button:has-text("Ack")' ).first(); if (await ackButton.isVisible()) { await ackButton.click(); await page.waitForTimeout(500); } }); test('can resolve an alert', async ({ page }) => { await page.goto('/alerts'); // Look for resolve button const resolveButton = page.locator( 'button:has-text("Resolve"), button:has-text("Mark Resolved")' ).first(); if (await resolveButton.isVisible()) { await resolveButton.click(); await page.waitForTimeout(500); } }); test('can search alerts', async ({ page }) => { await page.goto('/alerts'); // Look for search input const searchInput = page.locator('input[type="search"], input[placeholder*="Search"]').first(); if (await searchInput.isVisible()) { await searchInput.fill('test'); await page.waitForTimeout(500); } }); });