import { describe, expect, it } from 'vitest';
import {
  estimateCategoryAxisWidth,
  getBarChartHeight,
  truncateChartLabel,
} from '@/features/dashboard/components/charts/chartTheme';

describe('chartTheme layout helpers', () => {
  it('truncates long labels', () => {
    expect(truncateChartLabel('Open', 8)).toBe('Open');
    expect(truncateChartLabel('Very long category name', 12)).toBe('Very long c…');
  });

  it('estimates axis width from label length', () => {
    expect(estimateCategoryAxisWidth(['Open'])).toBeGreaterThanOrEqual(56);
    expect(estimateCategoryAxisWidth(['A very long status label name'])).toBeGreaterThan(80);
  });

  it('scales bar chart height with item count', () => {
    expect(getBarChartHeight(1)).toBeLessThan(getBarChartHeight(5));
    expect(getBarChartHeight(0)).toBe(104);
  });
});
