Files
2026-07-13 11:59:58 +08:00

67 lines
1.7 KiB
TypeScript

import { expect, test } from "@playwright/test";
import { mockLangGraphAPI, MOCK_THREAD_ID } from "./utils/mock-api";
const STOPPED_TASK_DESCRIPTION = "Research stopped reload regression";
const STOPPED_TASK_PROMPT =
"Investigate why the stopped subtask card should not remain running after reload.";
const stoppedSubtaskMessages = [
{
type: "human",
id: "msg-human-stopped-subtask",
content: [
{
type: "text",
text: "Start a subtask and then stop before the task tool returns.",
},
],
},
{
type: "ai",
id: "msg-ai-stopped-subtask",
content: "",
additional_kwargs: {},
response_metadata: {},
tool_calls: [
{
id: "call-stopped-subtask",
name: "task",
args: {
subagent_type: "general-purpose",
description: STOPPED_TASK_DESCRIPTION,
prompt: STOPPED_TASK_PROMPT,
},
type: "tool_call",
},
],
invalid_tool_calls: [],
},
];
test.describe("Subtask card", () => {
test("shows failed after a stopped task thread is reloaded", async ({
page,
}) => {
mockLangGraphAPI(page, {
threads: [
{
thread_id: MOCK_THREAD_ID,
title: "Stopped subtask",
updated_at: "2026-06-18T12:00:00Z",
messages: stoppedSubtaskMessages,
},
],
});
await page.goto(`/workspace/chats/${MOCK_THREAD_ID}`);
await page.reload();
await expect(page.getByText(STOPPED_TASK_DESCRIPTION)).toBeVisible({
timeout: 15_000,
});
await expect(page.getByText("Subtask failed")).toBeVisible();
await expect(page.getByText("Running subtask")).toHaveCount(0);
});
});