import { cleanup, render, screen } from "@testing-library/react";
import { afterEach, describe, expect, it, vi } from "vitest";
import { RemoteCloudTooltip } from "./remote-cloud-tooltip";
afterEach(() => cleanup());
vi.mock("@kandev/ui/tooltip", () => ({
Tooltip: ({ children }: { children: React.ReactNode }) => <>{children}>,
TooltipTrigger: ({ children }: { children: React.ReactNode }) => <>{children}>,
TooltipContent: ({ children }: { children: React.ReactNode }) => <>{children}>,
}));
describe("RemoteCloudTooltip executor icon", () => {
it("shows a container icon for Docker executors", () => {
render(
,
);
expect(screen.getByTestId("executor-status-container-icon")).toBeTruthy();
expect(screen.queryByTestId("executor-status-cloud-icon")).toBeNull();
});
it("keeps the cloud icon for Sprites executors", () => {
render(
,
);
expect(screen.getByTestId("executor-status-cloud-icon")).toBeTruthy();
});
});
describe("RemoteCloudTooltip relative timestamps", () => {
it("renders created and last-check times as relative values", () => {
const twoHoursAgo = new Date(Date.now() - 2 * 60 * 60 * 1000).toISOString();
const fiveMinutesAgo = new Date(Date.now() - 5 * 60 * 1000).toISOString();
render(
,
);
expect(screen.getByText("Created: 2h ago")).toBeTruthy();
expect(screen.getByText("Last check: 5m ago")).toBeTruthy();
});
});