import { describe, expect, test } from 'vitest';

import {
  formatDate,
  formatDateTime,
  titleize,
  truncate,
} from '../../src/utils/format';

describe('format utilities', () => {
  test('formats missing timestamps as never', () => {
    expect(formatDate(undefined)).toBe('Never');
    expect(formatDateTime(undefined)).toBe('Never');
  });

  test('formats known timestamps', () => {
    const value = Date.UTC(2026, 0, 2, 3, 4, 5);

    expect(formatDate(value)).toContain('2026');
    expect(formatDateTime(value)).toContain('2026');
  });

  test('titleizes machine values', () => {
    expect(titleize('waiting_for_user')).toBe('waiting for user');
  });

  test('truncates long text', () => {
    expect(truncate('abcdef', 4)).toBe('a...');
    expect(truncate('abc', 4)).toBe('abc');
  });
});
