* feat(agents): surface live task progress Keep current task state above the composer and turn task snapshots into semantic timeline activity. Normalize provider task protocols while preserving genuine plan flows. * fix(agents): admit tasks through stream sequencing * test(agents): expect normalized task status
25 lines
802 B
TypeScript
25 lines
802 B
TypeScript
import { expect, type Page } from "@playwright/test";
|
|
|
|
export async function openCompletedTaskList(page: Page, count: number): Promise<void> {
|
|
const taskButton = page.getByRole("button", { name: `${count}/${count} tasks` });
|
|
await expect(taskButton).toBeVisible({ timeout: 60_000 });
|
|
await taskButton.click();
|
|
}
|
|
|
|
export async function expectTaskListEntries(page: Page, entries: readonly string[]): Promise<void> {
|
|
for (const entry of entries) {
|
|
await expect(page.getByLabel(entry, { exact: true })).toBeVisible();
|
|
}
|
|
}
|
|
|
|
export async function expectCompletedTaskActivity(
|
|
page: Page,
|
|
entries: readonly string[],
|
|
): Promise<void> {
|
|
for (const entry of entries) {
|
|
await expect(
|
|
page.getByRole("button", { name: `Completed ${entry}`, exact: true }),
|
|
).toBeVisible();
|
|
}
|
|
}
|