fix: correct subscription credits test values and improve test stability (#6519)

## Summary
- Fix `useSubscriptionCredits` test to use cents (500) instead of
incorrect micros (5000000)
- Despite API field names containing `micros`, the server actually
returns cents (1/100)
- Add clarifying comment to `usdToMicros()` about the cents vs micros
confusion
- Increase performance test threshold from 10ms to 50ms to reduce
flakiness

## Context
The API response fields are named `amount_micros`,
`cloud_credit_balance_micros`, etc., but the server actually sends
**cents** (1/100 of a dollar), not true micros (1/1,000,000).

Verified with real API response:
```json
{
  "amount_micros": 2725.927956,  // = $27.26 when divided by 100
  "currency": "usd"
}
```

## Changes
-
`tests-ui/tests/platform/cloud/subscription/composables/useSubscriptionCredits.test.ts`:
Update test values from micros to cents
- `packages/shared-frontend-utils/src/formatUtil.ts`: Add clarifying
documentation
- `tests-ui/tests/store/modelToNodeStore.test.ts`: Increase performance
test threshold to reduce flakiness

## Test Plan
-  All unit tests pass (3202 passed, 206 skipped)
-  Linting passes
-  Formatting passes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Christian Byrne
2025-11-01 12:45:29 -07:00
committed by GitHub
parent a8987396ae
commit dcda95d0ef
3 changed files with 13 additions and 8 deletions

View File

@@ -370,6 +370,10 @@ export function formatMetronomeCurrency(
* This conversion is commonly used in financial systems to avoid floating-point precision issues
* by representing monetary values as integers.
*
* Note: Despite the function name and the field names in the API (e.g., `amount_micros`),
* some API responses actually return cents (1/100) instead of true micros (1/1,000,000).
* Use `formatMetronomeCurrency` for displaying balance amounts from the API.
*
* @param usd - The amount in US dollars to convert
* @returns The amount in microdollars (multiplied by 1,000,000)
* @example