import { describe, expect, it } from 'bun:test' import { formatBytes } from './format.ts' describe('流量数字', () => { it('零和不满 1KB 的按字节显示,不带小数', () => { expect(formatBytes(0)).toBe('0 B') expect(formatBytes(512)).toBe('512 B') expect(formatBytes(1023)).toBe('1023 B') }) it('1024 的边界正好换档', () => { expect(formatBytes(1024)).toBe('1 KB') expect(formatBytes(1024 * 1024)).toBe('1 MB') }) it('不满 100 保留一位小数,够 100 取整', () => { expect(formatBytes(23.4 * 1024 * 1024)).toBe('23.4 MB') expect(formatBytes(234.7 * 1024 * 1024)).toBe('235 MB') }) it('超大数停在 TB 档', () => { expect(formatBytes(5 * 1024 ** 4)).toBe('5 TB') expect(formatBytes(5000 * 1024 ** 4)).toBe('5000 TB') }) it('脏输入不炸', () => { expect(formatBytes(-1)).toBe('0 B') expect(formatBytes(Number.NaN)).toBe('0 B') }) })