From d518b5ae9c81e4a2c6ea1eaef10d3cb76b6d255f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Semp=C3=A9?= Date: Mon, 14 Oct 2024 12:10:16 +0200 Subject: [PATCH] feat(wallet): Ensure resetting the ready_to_be_refreshed flag --- app/services/events/post_process_service.rb | 2 +- app/services/wallets/balance/update_ongoing_service.rb | 3 ++- spec/services/wallets/balance/update_ongoing_service_spec.rb | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/services/events/post_process_service.rb b/app/services/events/post_process_service.rb index 126237f31127..50e1f9b2af9a 100644 --- a/app/services/events/post_process_service.rb +++ b/app/services/events/post_process_service.rb @@ -100,7 +100,7 @@ def flag_wallets_for_refresh return unless customer return unless customer.wallets.active.any? - customer.wallets.active.not_ready_to_be_refreshed.update_all(ready_to_be_refreshed: true) + customer.wallets.active.not_ready_to_be_refreshed.update_all(ready_to_be_refreshed: true) # rubocop:disable Rails/SkipsModelValidations end def handle_pay_in_advance diff --git a/app/services/wallets/balance/update_ongoing_service.rb b/app/services/wallets/balance/update_ongoing_service.rb index aea15af6ea2c..6acd88940769 100644 --- a/app/services/wallets/balance/update_ongoing_service.rb +++ b/app/services/wallets/balance/update_ongoing_service.rb @@ -34,7 +34,8 @@ def compute_update_params ongoing_usage_balance_cents: total_usage_amount_cents, credits_ongoing_usage_balance:, ongoing_balance_cents:, - credits_ongoing_balance: + credits_ongoing_balance:, + ready_to_be_refreshed: false } if !wallet.depleted_ongoing_balance? && ongoing_balance_cents <= 0 diff --git a/spec/services/wallets/balance/update_ongoing_service_spec.rb b/spec/services/wallets/balance/update_ongoing_service_spec.rb index 56389acc0a29..80dc8d70d08b 100644 --- a/spec/services/wallets/balance/update_ongoing_service_spec.rb +++ b/spec/services/wallets/balance/update_ongoing_service_spec.rb @@ -13,7 +13,8 @@ ongoing_usage_balance_cents: 200, credits_balance: 10.0, credits_ongoing_balance: 8.0, - credits_ongoing_usage_balance: 2.0 + credits_ongoing_usage_balance: 2.0, + ready_to_be_refreshed: true ) end let(:total_usage_amount_cents) { 450 } @@ -28,6 +29,7 @@ .and change(wallet, :credits_ongoing_usage_balance).from(2.0).to(4.5) .and change(wallet, :ongoing_balance_cents).from(800).to(550) .and change(wallet, :credits_ongoing_balance).from(8.0).to(5.5) + .and change(wallet, :ready_to_be_refreshed).from(true).to(false) expect(wallet).not_to be_depleted_ongoing_balance end