25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
// spec: specs/basic-operations.plan.md
|
|
// seed: tests/seed.spec.ts
|
|
|
|
import { test, expect } from '../fixtures';
|
|
|
|
test.describe('Completing Todos', () => {
|
|
test('should-complete-single-todo', async ({ page }) => {
|
|
// 1. Add a todo 'Buy groceries'
|
|
await page.getByRole('textbox', { name: 'What needs to be done?' }).fill('Buy groceries');
|
|
await page.getByRole('textbox', { name: 'What needs to be done?' }).press('Enter');
|
|
|
|
// Expect: The todo appears as active, Counter shows '1 item left'
|
|
await expect(page.getByText('Buy groceries')).toBeVisible();
|
|
await expect(page.getByText('1 item left')).toBeVisible();
|
|
|
|
// 2. Click the checkbox next to the todo
|
|
await page.getByRole('checkbox', { name: 'Toggle Todo' }).click();
|
|
|
|
// Expect: The checkbox is checked, Counter shows '0 items left', The 'Clear completed' button appears in the footer
|
|
await expect(page.getByRole('checkbox', { name: 'Toggle Todo' })).toBeChecked();
|
|
await expect(page.getByText('0 items left')).toBeVisible();
|
|
await expect(page.getByRole('button', { name: 'Clear completed' })).toBeVisible();
|
|
});
|
|
});
|