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

test('Settings: read and update', async ({ page }) => {
  await page.goto('/settings');
  await expect(page.locator('h1')).toContainText('Site Settings');

  const siteNameInput = page.locator('#site-name');
  await expect(siteNameInput).toBeVisible({ timeout: 10_000 });

  const originalSiteName = await siteNameInput.inputValue();
  const testName = `E2E Site ${Date.now()}`;

  // --- UPDATE ---
  await siteNameInput.clear();
  await siteNameInput.fill(testName);

  await page.getByRole('button', { name: 'Save all settings' }).first().click();

  // Wait for the specific toast text from the app: "Settings saved"
  await expect(page.getByText('Settings saved')).toBeVisible({ timeout: 10_000 });

  // --- VERIFY PERSISTENCE ---
  await page.reload();
  await expect(siteNameInput).toBeVisible({ timeout: 10_000 });
  await expect(siteNameInput).toHaveValue(testName);

  // --- RESTORE ---
  await siteNameInput.clear();
  await siteNameInput.fill(originalSiteName);
  await page.getByRole('button', { name: 'Save all settings' }).first().click();
  await expect(page.getByText('Settings saved')).toBeVisible({ timeout: 10_000 });
});
