55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import { describe, expect, test } from 'bun:test';
|
|
import { formatBytes, formatBytesCompact } from '../src/lib/utils/format';
|
|
|
|
describe('formatBytes', () => {
|
|
test('returns 0 B for zero', () => {
|
|
expect(formatBytes(0)).toBe('0 B');
|
|
});
|
|
|
|
test('formats bytes', () => {
|
|
expect(formatBytes(500)).toBe('500 B');
|
|
expect(formatBytes(1)).toBe('1 B');
|
|
});
|
|
|
|
test('formats kilobytes', () => {
|
|
expect(formatBytes(1024)).toBe('1.0 KB');
|
|
expect(formatBytes(1536)).toBe('1.5 KB');
|
|
});
|
|
|
|
test('formats megabytes', () => {
|
|
expect(formatBytes(1048576)).toBe('1.0 MB');
|
|
expect(formatBytes(5242880)).toBe('5.0 MB');
|
|
});
|
|
|
|
test('formats gigabytes', () => {
|
|
expect(formatBytes(1073741824)).toBe('1.0 GB');
|
|
});
|
|
|
|
test('formats terabytes', () => {
|
|
expect(formatBytes(1099511627776)).toBe('1.0 TB');
|
|
});
|
|
|
|
test('respects decimals parameter', () => {
|
|
expect(formatBytes(1536, 2)).toBe('1.50 KB');
|
|
expect(formatBytes(1536, 0)).toBe('2 KB');
|
|
});
|
|
});
|
|
|
|
describe('formatBytesCompact', () => {
|
|
test('returns 0B for zero', () => {
|
|
expect(formatBytesCompact(0)).toBe('0B');
|
|
});
|
|
|
|
test('uses compact units without space', () => {
|
|
expect(formatBytesCompact(1024)).toBe('1.0K');
|
|
expect(formatBytesCompact(1048576)).toBe('1.0M');
|
|
expect(formatBytesCompact(1073741824)).toBe('1.0G');
|
|
expect(formatBytesCompact(1099511627776)).toBe('1.0T');
|
|
});
|
|
|
|
test('respects decimals parameter', () => {
|
|
expect(formatBytesCompact(1536, 0)).toBe('2K');
|
|
expect(formatBytesCompact(1536, 2)).toBe('1.50K');
|
|
});
|
|
});
|