import React from "react";
import { render, screen } from "@testing-library/react";
import { CopilotKitProvider } from "../../../providers/CopilotKitProvider";
import { CopilotChatConfigurationProvider } from "../../../providers/CopilotChatConfigurationProvider";
import CopilotChatMessageView from "../CopilotChatMessageView";
import { CopilotChatAssistantMessage } from "../CopilotChatAssistantMessage";
import { CopilotChatUserMessage } from "../CopilotChatUserMessage";
import { CopilotChatInput } from "../CopilotChatInput";
import { CopilotModalHeader } from "../CopilotModalHeader";
import { CopilotChatToggleButton } from "../CopilotChatToggleButton";
import { CopilotChatView } from "../CopilotChatView";
import { AssistantMessage, Message, UserMessage } from "@ag-ui/core";
const TEST_THREAD_ID = "test-thread";
const renderWithProvider = (component: React.ReactElement) => {
return render(
{component}
,
);
};
describe("v2 CopilotChat CSS class compatibility with v1", () => {
describe("CopilotChatMessageView", () => {
it("includes copilotKitMessages class", () => {
const messages: Message[] = [];
renderWithProvider();
const messageList = screen.getByTestId("copilot-message-list");
expect(messageList.className).toContain("copilotKitMessages");
});
});
describe("CopilotChatAssistantMessage", () => {
it("includes copilotKitMessage and copilotKitAssistantMessage classes", () => {
const message: AssistantMessage = {
role: "assistant",
content: "Hello from the assistant",
id: "test-assistant-1",
};
renderWithProvider();
const el = screen.getByTestId("copilot-assistant-message");
expect(el.className).toContain("copilotKitMessage");
expect(el.className).toContain("copilotKitAssistantMessage");
});
});
describe("CopilotChatUserMessage", () => {
it("includes copilotKitMessage and copilotKitUserMessage classes", () => {
const message: UserMessage = {
role: "user",
content: "Hello from the user",
id: "test-user-1",
};
renderWithProvider();
const el = screen.getByTestId("copilot-user-message");
expect(el.className).toContain("copilotKitMessage");
expect(el.className).toContain("copilotKitUserMessage");
});
});
describe("CopilotChatInput", () => {
it("includes copilotKitInput class", () => {
renderWithProvider();
const el = screen.getByTestId("copilot-chat-input");
expect(el.className).toContain("copilotKitInput");
});
});
describe("CopilotModalHeader", () => {
it("includes copilotKitHeader class", () => {
renderWithProvider();
const el = screen.getByTestId("copilot-modal-header");
expect(el.className).toContain("copilotKitHeader");
});
});
describe("CopilotChatToggleButton", () => {
it("includes copilotKitButton class", () => {
renderWithProvider();
const el = screen.getByTestId("copilot-chat-toggle");
expect(el.className).toContain("copilotKitButton");
});
});
describe("CopilotChatView", () => {
it("includes copilotKitChat class", () => {
renderWithProvider(
,
);
const el = screen.getByTestId("copilot-chat");
expect(el.className).toContain("copilotKitChat");
});
});
});