import { describe, it, expect } from 'vitest'; import { formatTime, parseTime } from '$lib/utils/time'; describe('formatTime', () => { it('formats zero seconds', () => { expect(formatTime(0)).toBe('00:00.000'); }); it('formats seconds with milliseconds', () => { expect(formatTime(83.45)).toBe('01:23.450'); }); it('formats hours', () => { expect(formatTime(3661.5)).toBe('1:01:01.500'); }); it('formats exact minutes', () => { expect(formatTime(120)).toBe('02:00.000'); }); it('handles large values', () => { expect(formatTime(7384.123)).toBe('2:03:04.123'); }); }); describe('parseTime', () => { it('parses mm:ss.mmm format', () => { expect(parseTime('01:23.450')).toBeCloseTo(83.45); }); it('parses h:mm:ss.mmm format', () => { expect(parseTime('1:01:01.500')).toBeCloseTo(3661.5); }); it('returns null for invalid input', () => { expect(parseTime('not a time')).toBeNull(); }); it('parses mm:ss without milliseconds', () => { expect(parseTime('02:00')).toBeCloseTo(120); }); });