import type { ReactNode } from 'react'; import { describe, expect, it, vi } from 'vitest'; import { render, screen } from '@testing-library/react'; import { UsageTrendChart } from '@/components/analytics/usage-trend-chart'; import { AllProviders } from '@tests/setup/test-utils'; vi.mock('recharts', () => ({ ResponsiveContainer: ({ children }: { children: ReactNode }) =>
{children}
, AreaChart: ({ children }: { children: ReactNode }) =>
{children}
, Area: () => null, CartesianGrid: () => null, XAxis: () => null, YAxis: () => null, Tooltip: ({ content }: { content: (args: unknown) => ReactNode }) => (
{content({ active: true, label: '14:00', payload: [ { name: 'Tokens', value: 1_200, color: '#0080FF', payload: { requests: 4 }, }, { name: 'Cost', value: 1.5, color: '#00C49F', payload: { requests: 4 }, }, ], })}
), defs: ({ children }: { children: ReactNode }) => <>{children}, linearGradient: ({ children }: { children: ReactNode }) => <>{children}, stop: () => null, })); describe('UsageTrendChart', () => { it('does not overclaim hourly request semantics in the tooltip', () => { render( , { wrapper: AllProviders } ); expect(screen.getByText('Tokens: 1.2K')).toBeInTheDocument(); expect(screen.getByText('Cost: $1.5')).toBeInTheDocument(); expect(screen.queryByText(/Requests:/)).not.toBeInTheDocument(); }); });