From 81c72df8ea2a152c89291fa5d15907500dc34042 Mon Sep 17 00:00:00 2001 From: Isaac Sanchez-Hawkins <266845420+isanchez404@users.noreply.github.com> Date: Tue, 19 May 2026 10:38:11 -0400 Subject: [PATCH] fix(ui): ignore non-finite quota percentages (#1329) Co-authored-by: Isaac Sanchez --- packages/ui/src/lib/quota/utils.test.ts | 13 +++++++++++++ packages/ui/src/lib/quota/utils.ts | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 packages/ui/src/lib/quota/utils.test.ts diff --git a/packages/ui/src/lib/quota/utils.test.ts b/packages/ui/src/lib/quota/utils.test.ts new file mode 100644 index 00000000..afca3d75 --- /dev/null +++ b/packages/ui/src/lib/quota/utils.test.ts @@ -0,0 +1,13 @@ +import { describe, expect, test } from 'bun:test'; + +import { clampPercent, formatPercent } from './utils'; + +describe('quota utils', () => { + test('treats non-finite percentages as missing', () => { + expect(clampPercent(Infinity)).toBeNull(); + expect(clampPercent(-Infinity)).toBeNull(); + + expect(formatPercent(Infinity)).toBe('-'); + expect(formatPercent(-Infinity)).toBe('-'); + }); +}); diff --git a/packages/ui/src/lib/quota/utils.ts b/packages/ui/src/lib/quota/utils.ts index a0d87a2b..c6f980d9 100644 --- a/packages/ui/src/lib/quota/utils.ts +++ b/packages/ui/src/lib/quota/utils.ts @@ -1,12 +1,12 @@ export const clampPercent = (value: number | null): number | null => { - if (typeof value !== 'number' || Number.isNaN(value)) { + if (typeof value !== 'number' || !Number.isFinite(value)) { return null; } return Math.max(0, Math.min(100, Math.round(value))); }; export const formatPercent = (value: number | null): string => { - if (typeof value !== 'number' || Number.isNaN(value)) { + if (typeof value !== 'number' || !Number.isFinite(value)) { return '-'; } return `${Math.round(value)}%`;