Files
catalyst/ui/tests/e2e/settings.spec.ts
2025-09-02 21:58:08 +02:00

55 lines
1.7 KiB
TypeScript

import { login, test } from './util'
import { expect } from '@playwright/test'
const goToSettings = async (page) => {
await page.goto('settings')
await expect(page.getByRole('heading', { name: 'Settings' })).toBeVisible()
}
test('settings page shows existing settings', async ({ page }) => {
await login(page)
await goToSettings(page)
await expect(page.locator('#meta\\.appName')).toHaveValue('Catalyst')
})
const updates = [
{ field: 'app name', selector: '#meta\\.appName', value: () => `Catalyst-${Date.now()}` },
// {
// field: 'app url',
// selector: '#meta\\.appUrl',
// value: () => `https://catalyst-${Date.now()}.example.com`
// },
{ field: 'sender name', selector: '#meta\\.senderName', value: () => `Catalyst-${Date.now()}` },
{
field: 'sender address',
selector: '#meta\\.senderAddress',
value: () => `catalyst-${Date.now()}@example.com`
}
]
test.describe('update settings', () => {
for (const { field, selector, value } of updates) {
test(`can update ${field}`, async ({ page }) => {
await login(page)
await goToSettings(page)
const v = value()
await page.locator(selector).fill(v)
const saveBtn = page.getByRole('button', { name: 'Save' }).last()
await expect(saveBtn).toBeEnabled()
await saveBtn.click()
await expect(page.locator(selector)).toHaveValue(v)
})
}
test('can enable smtp', async ({ page }) => {
await login(page)
await goToSettings(page)
const smtpSwitch = page.getByRole('switch').first()
await smtpSwitch.click()
const saveBtn = page.getByRole('button', { name: 'Save' }).last()
await expect(saveBtn).toBeEnabled()
await saveBtn.click()
await expect(smtpSwitch).toHaveAttribute('data-state', 'checked')
})
})