Add test for dormant credit cards with zero balance and adjust processor logic (#630)

- Added a new test to validate how dormant credit cards with zero balance and negative available balance are processed.
- Updated processor logic to ensure `current_balance` takes precedence when explicitly set to zero, preventing incorrect usage of `available_balance`.

Co-authored-by: Josh Waldrep <joshua.waldrep5+github@gmail.com>
This commit is contained in:
LPW
2026-01-13 03:32:05 -05:00
committed by GitHub
parent 62dabb6971
commit 6e240a2332
2 changed files with 23 additions and 1 deletions

View File

@@ -178,4 +178,24 @@ class SimplefinAccountProcessorTest < ActiveSupport::TestCase
# Mapper should infer liability from name; final should be negative
assert_equal BigDecimal("-100.00"), acct.reload.balance
end
test "dormant credit card with zero balance and negative available-balance shows zero debt" do
sfin_acct = SimplefinAccount.create!(
simplefin_item: @item,
name: "Discover Card",
account_id: "cc_dormant",
currency: "USD",
account_type: "credit",
current_balance: BigDecimal("0"),
available_balance: BigDecimal("-3800") # credit limit reported as negative
)
acct = accounts(:credit_card)
acct.update!(simplefin_account: sfin_acct)
SimplefinAccount::Processor.new(sfin_acct).send(:process_account!)
# Should use explicit zero balance, not negative available_balance
assert_equal BigDecimal("0"), acct.reload.balance
end
end