Merge pull request 'fix: commaNumber silently returns '0' for NaN and falsy values (#427)' (#485) from fix/issue-427 into master

This commit is contained in:
johba 2026-03-06 07:20:27 +01:00
commit 37d7339fbf
2 changed files with 11 additions and 2 deletions

View file

@ -22,7 +22,8 @@ export function compactNumber(value: number): string {
/** Format number with commas (e.g. "1,234,567") */
export function commaNumber(value: number): string {
return value ? value.toLocaleString('en-US') : '0';
if (!Number.isFinite(value)) return '0';
return value.toLocaleString('en-US');
}
/** Format a token amount with comma grouping and 2 decimal places (e.g. "1,234.56") */

View file

@ -95,10 +95,18 @@ describe('compactNumber', () => {
});
describe('commaNumber', () => {
test('returns "0" for falsy input', () => {
test('returns "0" for zero', () => {
expect(commaNumber(0)).toBe('0');
});
test('returns "0" for NaN', () => {
expect(commaNumber(NaN)).toBe('0');
});
test('returns "0" for Infinity', () => {
expect(commaNumber(Infinity)).toBe('0');
});
test('formats thousands with commas', () => {
expect(commaNumber(1234)).toBe('1,234');
});