import { test, expect } from '@playwright/test';

test.describe('Grievance Details No SQL Error', () => {
  test('viewing grievance details does not throw SQL username error', async ({ page }) => {
    await page.goto('/hr-manager/grievances/list');

    await page.waitForSelector('table tbody', { timeout: 20000 });

    const rowCount = await page.locator('table tbody tr:not([aria-hidden="true"])').count();

    if (rowCount === 0) {
      test.skip(true, 'No grievances available for testing');
    }

    const viewButton = page
      .locator('table tbody tr:not([aria-hidden="true"])')
      .first()
      .locator('button[aria-label="View"]');
    await viewButton.click();

    await page.waitForURL('**/grievances/view/**', { timeout: 10000 });

    await expect(page.getByText(/SQLSTATE/i)).not.toBeVisible();
    await expect(page.getByText(/Unknown column 'username'/i)).not.toBeVisible();

    const emailPattern = page.locator('text=@');
    await expect(emailPattern.first()).toBeVisible({ timeout: 10000 });
  });
});
