import { describe, expect, it } from 'vitest'; import { formatElapsedDuration } from '../../../packages/shared/src/lib/formatElapsedDuration'; import { resourceCanvasAssetGenerationElapsedLabel } from '../src/features/resource-canvas/resourceCanvasAssetGenerationTaskModel'; import { formatToolCallDuration, formatTurnDuration, } from '../src/view/project-development/chat/components/ToolCallGroup/toolCallGroupPresentation'; describe('统一中文耗时', () => { it.each([ [0, '0.0秒'], [5200, '5.2秒'], [59_949, '59.9秒'], [59_950, '1分00秒'], [60_000, '1分00秒'], [60_100, '1分00秒'], [65_600, '1分06秒'], [125_200, '2分05秒'], [3_599_950, '1时00分00秒'], [3_725_200, '1时02分05秒'], [90_061_200, '25时01分01秒'], ])('%s ms → %s,所有入口一致', (ms, expected) => { expect(formatElapsedDuration(ms)).toBe(expected); expect(formatToolCallDuration(ms)).toBe(expected); expect(formatTurnDuration(ms)).toBe(expected); expect(resourceCanvasAssetGenerationElapsedLabel(ms)).toBe(expected); }); it.each([null, undefined, NaN, Infinity, -1])( '未知时间不伪造零:%s', (ms) => { expect(formatElapsedDuration(ms)).toBeNull(); }, ); });