diff --git a/backend/internal/repository/user_repo_integration_test.go b/backend/internal/repository/user_repo_integration_test.go index 19e6d6a3..f5d0f9ff 100644 --- a/backend/internal/repository/user_repo_integration_test.go +++ b/backend/internal/repository/user_repo_integration_test.go @@ -495,9 +495,12 @@ func (s *UserRepoSuite) TestCRUD_And_Filters_And_AtomicUpdates() { s.Require().NoError(err, "GetByID after DeductBalance") s.Require().InDelta(7.5, got4.Balance, 1e-6) + // 透支策略:允许扣除超过余额的金额 err = s.repo.DeductBalance(s.ctx, user1.ID, 999) - s.Require().Error(err, "DeductBalance expected error for insufficient balance") - s.Require().ErrorIs(err, service.ErrInsufficientBalance, "DeductBalance unexpected error") + s.Require().NoError(err, "DeductBalance should allow overdraft") + gotOverdraft, err := s.repo.GetByID(s.ctx, user1.ID) + s.Require().NoError(err, "GetByID after overdraft") + s.Require().Less(gotOverdraft.Balance, 0.0, "Balance should be negative after overdraft") s.Require().NoError(s.repo.UpdateConcurrency(s.ctx, user1.ID, 3), "UpdateConcurrency") got5, err := s.repo.GetByID(s.ctx, user1.ID)