From a05b8732157d79716e5c38085123a385db308993 Mon Sep 17 00:00:00 2001 From: yan9651688 <174289968+yan9651688@users.noreply.github.com> Date: Mon, 20 Jul 2026 10:33:04 +0800 Subject: [PATCH] fix(payment): prevent configured currencies from looking like USD Subscription plans can carry a display-only ISO currency code, but the admin plan table and user plan cards still used a hard-coded dollar sign. Resolve the symbol through the shared currency helper while retaining existing number formatting, the currency code label, and legacy blank-currency behavior. Constraint: Plans without a currency must keep the legacy USD display Rejected: Reformat complete prices with Intl.NumberFormat | it would change existing decimals and remove the explicit currency code Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep plan currency symbols aligned across admin and user displays Tested: targeted Vitest 4 tests; targeted ESLint; vue-tsc; Vite production build; full Vitest 1222 tests passed Not-tested: Full Vitest has 2 unrelated upstream failures in admin.system.rollback.spec.ts Related: https://github.com/Wei-Shaw/sub2api/issues/4609 --- .../payment/SubscriptionPlanCard.vue | 6 +- .../__tests__/SubscriptionPlanCard.spec.ts | 13 ++- .../admin/orders/AdminPaymentPlansView.vue | 9 +- .../__tests__/AdminPaymentPlansView.spec.ts | 106 ++++++++++++++++++ 4 files changed, 129 insertions(+), 5 deletions(-) create mode 100644 frontend/src/views/admin/orders/__tests__/AdminPaymentPlansView.spec.ts diff --git a/frontend/src/components/payment/SubscriptionPlanCard.vue b/frontend/src/components/payment/SubscriptionPlanCard.vue index d37645642a..55cf3384c5 100644 --- a/frontend/src/components/payment/SubscriptionPlanCard.vue +++ b/frontend/src/components/payment/SubscriptionPlanCard.vue @@ -26,13 +26,13 @@