mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
b6fcafe4cd
Every package: 9 demos (agentic-chat hero, hitl MeetingTimePicker, tool-rendering, gen-ui-tool-based Chart Generator, gen-ui-agent A2UI dynamic, shared-state-read/ write/streaming, subagents), 7 backend tools, Playwright e2e tests per demo. Cross-cutting: debug routes, error boundaries, camelCase SSE, generate_a2ui conversation context, spring-ai JSON weather, langroid adapter fixes. # Conflicts: # showcase/packages/ag2/manifest.yaml # showcase/packages/ag2/src/agents/agent.py # showcase/packages/ag2/src/app/api/debug/route.ts # showcase/packages/ag2/src/app/demos/agentic-chat/page.tsx # showcase/packages/ag2/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/ag2/src/app/demos/hitl/page.tsx # showcase/packages/ag2/src/app/demos/tool-rendering/page.tsx # showcase/packages/ag2/tests/e2e/gen-ui-tool-based.spec.ts # showcase/packages/ag2/tests/e2e/hitl.spec.ts # showcase/packages/ag2/tsconfig.json # showcase/packages/agno/manifest.yaml # showcase/packages/agno/src/agents/main.py # showcase/packages/agno/src/app/api/debug/route.ts # showcase/packages/agno/src/app/demos/agentic-chat/page.tsx # showcase/packages/agno/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/agno/src/app/demos/hitl/page.tsx # showcase/packages/agno/src/app/demos/tool-rendering/page.tsx # showcase/packages/agno/tsconfig.json # showcase/packages/claude-sdk-python/manifest.yaml # showcase/packages/claude-sdk-python/src/agents/agent.py # showcase/packages/claude-sdk-python/src/app/api/debug/route.ts # showcase/packages/claude-sdk-python/src/app/demos/agentic-chat/page.tsx # showcase/packages/claude-sdk-python/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/claude-sdk-python/src/app/demos/hitl/page.tsx # showcase/packages/claude-sdk-python/src/app/demos/tool-rendering/page.tsx # showcase/packages/claude-sdk-python/tests/e2e/gen-ui-tool-based.spec.ts # showcase/packages/claude-sdk-python/tests/e2e/hitl.spec.ts # showcase/packages/claude-sdk-python/tsconfig.json # showcase/packages/claude-sdk-typescript/.gitignore # showcase/packages/claude-sdk-typescript/src/app/api/debug/route.ts # showcase/packages/claude-sdk-typescript/src/app/demos/agentic-chat/page.tsx # showcase/packages/claude-sdk-typescript/src/app/demos/tool-rendering/page.tsx # showcase/packages/claude-sdk-typescript/tests/e2e/gen-ui-tool-based.spec.ts # showcase/packages/claude-sdk-typescript/tests/e2e/hitl.spec.ts # showcase/packages/crewai-crews/manifest.yaml # showcase/packages/crewai-crews/src/agents/crew.py # showcase/packages/crewai-crews/src/agents/tools/custom_tool.py # showcase/packages/crewai-crews/src/app/demos/agentic-chat/page.tsx # showcase/packages/crewai-crews/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/google-adk/manifest.yaml # showcase/packages/google-adk/src/agents/main.py # showcase/packages/google-adk/src/app/demos/agentic-chat/page.tsx # showcase/packages/google-adk/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/google-adk/src/app/demos/hitl/page.tsx # showcase/packages/langgraph-fastapi/src/app/api/debug/route.ts # showcase/packages/langgraph-fastapi/src/app/demos/agentic-chat/page.tsx # showcase/packages/langgraph-fastapi/src/app/demos/hitl/page.tsx # showcase/packages/langgraph-fastapi/tests/e2e/hitl.spec.ts # showcase/packages/langgraph-fastapi/tsconfig.json # showcase/packages/langgraph-python/src/app/demos/agentic-chat/page.tsx # showcase/packages/langgraph-python/src/app/demos/hitl/page.tsx # showcase/packages/langgraph-python/tests/e2e/agentic-chat.spec.ts # showcase/packages/langgraph-python/tests/e2e/hitl.spec.ts # showcase/packages/langgraph-python/tests/e2e/shared-state-streaming.spec.ts # showcase/packages/langgraph-python/tests/e2e/shared-state-write.spec.ts # showcase/packages/langgraph-python/tests/e2e/subagents.spec.ts # showcase/packages/langgraph-python/tsconfig.json # showcase/packages/langgraph-typescript/.gitignore # showcase/packages/langgraph-typescript/src/agent/graph.ts # showcase/packages/langgraph-typescript/src/app/api/debug/route.ts # showcase/packages/langgraph-typescript/src/app/demos/agentic-chat/page.tsx # showcase/packages/langgraph-typescript/src/app/demos/tool-rendering/page.tsx # showcase/packages/langgraph-typescript/tests/e2e/gen-ui-tool-based.spec.ts # showcase/packages/langgraph-typescript/tests/e2e/hitl.spec.ts # showcase/packages/langroid/src/agents/agent.py # showcase/packages/langroid/src/app/demos/agentic-chat/page.tsx # showcase/packages/langroid/src/app/demos/hitl/page.tsx # showcase/packages/langroid/src/app/demos/tool-rendering/page.tsx # showcase/packages/llamaindex/manifest.yaml # showcase/packages/llamaindex/src/agents/agent.py # showcase/packages/llamaindex/src/app/demos/agentic-chat/page.tsx # showcase/packages/llamaindex/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/llamaindex/src/app/demos/hitl/page.tsx # showcase/packages/llamaindex/src/app/demos/tool-rendering/page.tsx # showcase/packages/mastra/.gitignore # showcase/packages/mastra/package.json # showcase/packages/mastra/src/app/demos/agentic-chat/page.tsx # showcase/packages/mastra/src/app/demos/tool-rendering/page.tsx # showcase/packages/mastra/src/mastra/agents/index.ts # showcase/packages/mastra/src/mastra/tools/index.ts # showcase/packages/mastra/tests/e2e/gen-ui-tool-based.spec.ts # showcase/packages/mastra/tests/e2e/hitl.spec.ts # showcase/packages/ms-agent-dotnet/agent/Program.cs # showcase/packages/ms-agent-dotnet/manifest.yaml # showcase/packages/ms-agent-dotnet/src/app/api/debug/route.ts # showcase/packages/ms-agent-dotnet/src/app/demos/agentic-chat/page.tsx # showcase/packages/ms-agent-dotnet/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/ms-agent-dotnet/src/app/demos/hitl/page.tsx # showcase/packages/ms-agent-dotnet/src/app/demos/tool-rendering/page.tsx # showcase/packages/ms-agent-dotnet/tests/e2e/hitl.spec.ts # showcase/packages/ms-agent-dotnet/tsconfig.json # showcase/packages/ms-agent-python/src/agents/agent.py # showcase/packages/ms-agent-python/src/app/demos/agentic-chat/page.tsx # showcase/packages/ms-agent-python/src/app/demos/hitl/page.tsx # showcase/packages/ms-agent-python/src/app/demos/tool-rendering/page.tsx # showcase/packages/pydantic-ai/manifest.yaml # showcase/packages/pydantic-ai/src/agents/agent.py # showcase/packages/pydantic-ai/src/app/demos/agentic-chat/page.tsx # showcase/packages/pydantic-ai/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/pydantic-ai/src/app/demos/hitl/page.tsx # showcase/packages/spring-ai/manifest.yaml # showcase/packages/spring-ai/src/app/api/debug/route.ts # showcase/packages/spring-ai/src/app/demos/agentic-chat/page.tsx # showcase/packages/spring-ai/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/spring-ai/src/app/demos/hitl/page.tsx # showcase/packages/spring-ai/src/app/demos/tool-rendering/page.tsx # showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/AgentConfig.java # showcase/packages/spring-ai/src/main/java/com/copilotkit/showcase/springai/tools/WeatherTool.java # showcase/packages/spring-ai/tests/e2e/gen-ui-tool-based.spec.ts # showcase/packages/spring-ai/tests/e2e/hitl.spec.ts # showcase/packages/spring-ai/tsconfig.json # showcase/packages/strands/manifest.yaml # showcase/packages/strands/src/agents/agent.py # showcase/packages/strands/src/app/demos/agentic-chat/page.tsx # showcase/packages/strands/src/app/demos/gen-ui-tool-based/page.tsx # showcase/packages/strands/src/app/demos/hitl/page.tsx # showcase/packages/strands/src/app/demos/tool-rendering/page.tsx # showcase/shell/src/data/registry.json
64 lines
2.4 KiB
TypeScript
64 lines
2.4 KiB
TypeScript
import { test, expect } from "@playwright/test";
|
|
|
|
test.describe("Agentic Generative UI", () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.goto("/demos/gen-ui-agent");
|
|
});
|
|
|
|
test("page loads with chat input", async ({ page }) => {
|
|
await expect(page.getByPlaceholder("Type a message")).toBeVisible();
|
|
});
|
|
|
|
test("sends message and gets assistant response", async ({ page }) => {
|
|
const input = page.getByPlaceholder("Type a message");
|
|
await input.fill("Hello");
|
|
await input.press("Enter");
|
|
|
|
await expect(page.locator('[data-role="assistant"]').first()).toBeVisible({
|
|
timeout: 30000,
|
|
});
|
|
});
|
|
|
|
test("message list container exists", async ({ page }) => {
|
|
// The custom messageView renders a container with data-testid
|
|
await expect(
|
|
page.locator('[data-testid="copilot-message-list"]'),
|
|
).toBeVisible({ timeout: 10000 });
|
|
});
|
|
|
|
test("complex task triggers task progress tracker", async ({ page }) => {
|
|
const input = page.getByPlaceholder("Type a message");
|
|
await input.fill(
|
|
"Create a comprehensive dashboard showing sales metrics, revenue trends, and customer segments",
|
|
);
|
|
await input.press("Enter");
|
|
|
|
// The TaskProgress component should appear when the agent reports steps
|
|
const taskProgress = page.locator('[data-testid="task-progress"]');
|
|
await expect(taskProgress).toBeVisible({ timeout: 60000 });
|
|
|
|
// Should show a "Task Progress" heading
|
|
await expect(taskProgress.getByText("Task Progress")).toBeVisible();
|
|
|
|
// Should show a completion counter like "X/Y Complete"
|
|
await expect(taskProgress.getByText(/\d+\/\d+\s*Complete/)).toBeVisible();
|
|
|
|
// Step descriptions should be visible
|
|
const stepTexts = page.locator('[data-testid="task-step-text"]');
|
|
await expect(stepTexts.first()).toBeVisible({ timeout: 5000 });
|
|
});
|
|
|
|
test("task progress shows progress bar", async ({ page }) => {
|
|
const input = page.getByPlaceholder("Type a message");
|
|
await input.fill("Build a report analyzing quarterly performance data");
|
|
await input.press("Enter");
|
|
|
|
const taskProgress = page.locator('[data-testid="task-progress"]');
|
|
await expect(taskProgress).toBeVisible({ timeout: 60000 });
|
|
|
|
// The progress bar is a rounded-full div inside the tracker
|
|
const progressBar = taskProgress.locator(".rounded-full").first();
|
|
await expect(progressBar).toBeVisible();
|
|
});
|
|
});
|