fix(filesystem): handle negative values in formatSize() (#3231)

Return '0 B' for negative byte values instead of 'NaN B'.
File sizes cannot be negative, so this is a safe default.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
nulone 2026-08-28 09:17:22 +07:00 • committed by GitHub
commit 8102fbe27a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 3 deletions

View file

@ -65,8 +65,10 @@ describe('Lib Functions', () => {
});
it('handles negative numbers', () => {
// Negative numbers will result in NaN for the log calculation
expect(formatSize(-1024)).toContain('NaN');
// Negative numbers should return '0 B' as file sizes cannot be negative
expect(formatSize(-1)).toBe('0 B');
expect(formatSize(-1024)).toBe('0 B');
expect(formatSize(-1000000)).toBe('0 B');
expect(formatSize(-0)).toBe('0 B');
});

View file

@ -43,7 +43,7 @@ export interface SearchResult {
// Pure Utility Functions
export function formatSize(bytes: number): string {
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
if (bytes === 0) return '0 B';
if (bytes <= 0) return '0 B';
const i = Math.floor(Math.log(bytes) / Math.log(1024));