test: cover shared task creation modal flow

This commit is contained in:
zhi
2026-03-16 16:32:13 +00:00
parent 67aa98da4f
commit f50a2efdbf

View File

@@ -98,17 +98,17 @@ test.describe('Task & Comment Flow', () => {
// Click "+ Create Task"
await page.click('button:has-text("+ Create Task")');
await page.waitForTimeout(500);
await page.waitForSelector('.modal.task-create-modal', { timeout: 10000 });
const taskTitle = `Test Task ${TS}`;
console.log(`Task title: ${taskTitle}`);
await page.fill('input[placeholder="Title"]', taskTitle);
await page.fill('textarea[placeholder="Description (optional)"]', 'Task created by automated test');
await page.getByTestId('task-title-input').fill(taskTitle);
await page.getByTestId('task-description-input').fill('Task created by automated test');
await page.waitForTimeout(300);
// Click Create button in the card form
await page.click('.card button.btn-primary');
await page.waitForTimeout(2000);
await page.getByTestId('create-task-button').click();
await page.waitForSelector('.modal.task-create-modal', { state: 'detached', timeout: 10000 });
await page.waitForTimeout(1500);
// Verify task appears in the Tasks tab
await page.click('.tab:has-text("Tasks")');
@@ -119,10 +119,12 @@ test.describe('Task & Comment Flow', () => {
// ── Step 5: Create a Task item (for comment testing) ───────────────
// Milestone tasks don't have a detail page with comments, so we create
// a Task item via the /tasks/new form to test the comment flow.
// a Task item from the shared Tasks-page modal to test the comment flow.
console.log('📋 Creating task item for comment testing...');
await page.goto(`${BASE_URL}/tasks/new`);
await page.goto(`${BASE_URL}/tasks`);
await page.waitForLoadState('networkidle');
await page.click('button:has-text("+ Create Task")');
await page.waitForSelector('.modal.task-create-modal', { timeout: 10000 });
const taskItemTitle = `Test Task for Comment ${TS}`;
await page.getByTestId('task-title-input').fill(taskItemTitle);
@@ -157,11 +159,14 @@ test.describe('Task & Comment Flow', () => {
await page.waitForURL(`${BASE_URL}/tasks`, { timeout: 10000 });
await page.waitForLoadState('networkidle');
console.log('✅ Task item created');
await expect(page.locator('.tasks-table')).toBeVisible({ timeout: 10000 });
await expect(page.locator(`.tasks-table tr:has-text("${taskItemTitle}")`)).toBeVisible({ timeout: 10000 });
console.log('✅ Task item created and visible in list');
// ── Step 6: Open Task → Add Comment ────────────────────────────────
console.log('💬 Opening task to add comment...');
await page.goto(`${BASE_URL}/tasks/${createdTask.id}`);
await page.click(`.tasks-table tr:has-text("${taskItemTitle}")`);
await page.waitForURL(`${BASE_URL}/tasks/${createdTask.id}`, { timeout: 10000 });
await page.waitForLoadState('networkidle');
await page.waitForTimeout(1000);