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(); }); });