From ca36102f82e7524c7c097f0fa7d0d57d6cb0cd41 Mon Sep 17 00:00:00 2001 From: Tim Johnson Date: Fri, 18 Sep 2026 17:18:01 -0400 Subject: [PATCH] MPDX-10004 - Block savings fund transfers that would overdraw the account One-time transfers over the source fund's available balance are now blocked at the form level ($0 floor, cent-precision comparison, fail-closed when the fund balance cannot be resolved). Recurring transfers and edits show a non-blocking overdraft warning instead, since their payments process in the future against future balances. The BalanceCard transfer button now gates on the same shared availableBalance helper instead of the old deficit-limit check. Co-Authored-By: Claude Fable 5 --- .../BalanceCard/BalanceCard.test.tsx | 2 +- .../BalanceCard/BalanceCard.tsx | 3 +- .../Helper/availableBalance.ts | 20 ++ .../TransferModal/TransferModal.test.tsx | 193 ++++++++++++++++-- .../TransferModal/TransferModal.tsx | 69 +++++-- 5 files changed, 256 insertions(+), 31 deletions(-) create mode 100644 src/components/HrTools/SavingsFundTransfer/Helper/availableBalance.ts diff --git a/src/components/HrTools/SavingsFundTransfer/BalanceCard/BalanceCard.test.tsx b/src/components/HrTools/SavingsFundTransfer/BalanceCard/BalanceCard.test.tsx index 36d52d37e..b5bcca49c 100644 --- a/src/components/HrTools/SavingsFundTransfer/BalanceCard/BalanceCard.test.tsx +++ b/src/components/HrTools/SavingsFundTransfer/BalanceCard/BalanceCard.test.tsx @@ -228,7 +228,7 @@ describe('BalanceCard', () => { }); }); - it('should disable transfer from button when current balance goes beyond deficit limit', async () => { + it('should disable transfer from button when the fund has no available balance', async () => { const { findByRole } = render( = ({ >