import { HoverCard, HoverCardContent, HoverCardTrigger } from 'ui' import dayjs from 'dayjs' import { ReactNode } from 'react' export type TestStatusType = 'queued' | 'running' | 'passed' | 'failed' | undefined interface TestStatusHoverCardProps { name: string status: TestStatusType lastRun?: string errorMessage?: string children: ReactNode } const getStatusDescription = (status: TestStatusType) => { switch (status) { case 'running': return 'Currently running' case 'queued': return 'Queued for execution' case 'passed': return 'Completed successfully' case 'failed': return 'Failed' default: return 'Pending execution' } } const formatLastRun = (dateStr?: string) => { if (!dateStr) return 'Never' const date = dayjs(dateStr) return date.fromNow() } export const TestStatusHoverCard = ({ name, status, lastRun, errorMessage, children, }: TestStatusHoverCardProps) => { return ( {children}

{name}

Status: {getStatusDescription(status)}

Last run: {formatLastRun(lastRun)}

{status === 'failed' && errorMessage && (
{errorMessage}
)}
) } export default TestStatusHoverCard