First Release of Claw3D (#11)
Co-authored-by: iamlukethedev <iamlukethedev@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import { createElement } from "react";
|
||||
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||
import { cleanup, fireEvent, render, screen } from "@testing-library/react";
|
||||
import { ConnectionPanel } from "@/features/agents/components/ConnectionPanel";
|
||||
|
||||
describe("ConnectionPanel close control", () => {
|
||||
afterEach(() => {
|
||||
cleanup();
|
||||
});
|
||||
|
||||
it("renders close control and calls handler when provided", () => {
|
||||
const onClose = vi.fn();
|
||||
|
||||
render(
|
||||
createElement(ConnectionPanel, {
|
||||
gatewayUrl: "ws://127.0.0.1:18789",
|
||||
token: "token",
|
||||
status: "disconnected",
|
||||
error: null,
|
||||
onGatewayUrlChange: vi.fn(),
|
||||
onTokenChange: vi.fn(),
|
||||
onConnect: vi.fn(),
|
||||
onDisconnect: vi.fn(),
|
||||
onClose,
|
||||
})
|
||||
);
|
||||
|
||||
fireEvent.click(screen.getByTestId("gateway-connection-close"));
|
||||
expect(onClose).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it("does not render close control when handler is missing", () => {
|
||||
render(
|
||||
createElement(ConnectionPanel, {
|
||||
gatewayUrl: "ws://127.0.0.1:18789",
|
||||
token: "token",
|
||||
status: "disconnected",
|
||||
error: null,
|
||||
onGatewayUrlChange: vi.fn(),
|
||||
onTokenChange: vi.fn(),
|
||||
onConnect: vi.fn(),
|
||||
onDisconnect: vi.fn(),
|
||||
})
|
||||
);
|
||||
|
||||
expect(screen.queryByTestId("gateway-connection-close")).not.toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("renders semantic gateway status class markers", () => {
|
||||
const { rerender } = render(
|
||||
createElement(ConnectionPanel, {
|
||||
gatewayUrl: "ws://127.0.0.1:18789",
|
||||
token: "token",
|
||||
status: "disconnected",
|
||||
error: null,
|
||||
onGatewayUrlChange: vi.fn(),
|
||||
onTokenChange: vi.fn(),
|
||||
onConnect: vi.fn(),
|
||||
onDisconnect: vi.fn(),
|
||||
})
|
||||
);
|
||||
|
||||
const disconnected = screen.getByText("Disconnected");
|
||||
expect(disconnected).toHaveAttribute("data-status", "disconnected");
|
||||
expect(disconnected).toHaveClass("ui-badge-status-disconnected");
|
||||
|
||||
rerender(
|
||||
createElement(ConnectionPanel, {
|
||||
gatewayUrl: "ws://127.0.0.1:18789",
|
||||
token: "token",
|
||||
status: "connected",
|
||||
error: null,
|
||||
onGatewayUrlChange: vi.fn(),
|
||||
onTokenChange: vi.fn(),
|
||||
onConnect: vi.fn(),
|
||||
onDisconnect: vi.fn(),
|
||||
})
|
||||
);
|
||||
|
||||
const connected = screen.getByText("Connected");
|
||||
expect(connected).toHaveAttribute("data-status", "connected");
|
||||
expect(connected).toHaveClass("ui-badge-status-connected");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user