28 lines
1.1 KiB
TypeScript
28 lines
1.1 KiB
TypeScript
// seed: tests/seed.spec.ts
|
|
|
|
import { test, expect } from '../fixtures';
|
|
|
|
test.describe('Editing Todos', () => {
|
|
test('should trim whitespace when editing', async ({ page }) => {
|
|
// 1. Add a todo 'Original task'
|
|
await page.getByRole('textbox', { name: 'What needs to be done?' }).fill('Original task');
|
|
await page.getByRole('textbox', { name: 'What needs to be done?' }).press('Enter');
|
|
|
|
// Expect: The todo appears in the list
|
|
await expect(page.getByText('Original task')).toBeVisible();
|
|
|
|
// 2. Double-click to edit and change text to ' Edited task ' (with spaces)
|
|
await page.getByTestId('todo-title').dblclick();
|
|
await page.getByRole('textbox', { name: 'Edit' }).fill(' Edited task ');
|
|
|
|
// Expect: Edit textbox shows the text with spaces
|
|
await expect(page.getByRole('textbox', { name: 'Edit' })).toHaveValue(' Edited task ');
|
|
|
|
// 3. Press Enter to save
|
|
await page.keyboard.press('Enter');
|
|
|
|
// Expect: The todo is saved as 'Edited task' without leading or trailing whitespace
|
|
await expect(page.getByText('Edited task')).toBeVisible();
|
|
});
|
|
});
|