From c951281eb2a0d1197b8b1f747bd82fab1582c193 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 13 Jan 2026 08:21:02 +0000 Subject: [PATCH 1/2] Initial plan From 1f60c98ca1838d6e53a87518da852418b7c441c8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 13 Jan 2026 08:25:16 +0000 Subject: [PATCH 2/2] Add test cases for edge cases in refreshOverdueNextPayments Co-authored-by: gonfff <42554983+gonfff@users.noreply.github.com> --- .../subscriptions_view_model_test.dart | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/presentation/viewmodels/subscriptions_view_model_test.dart b/test/presentation/viewmodels/subscriptions_view_model_test.dart index f5d69d0..0d40be6 100644 --- a/test/presentation/viewmodels/subscriptions_view_model_test.dart +++ b/test/presentation/viewmodels/subscriptions_view_model_test.dart @@ -305,6 +305,32 @@ void main() { ).called(1); }); + test( + 'refreshOverdueNextPayments does nothing when subscriptions are empty', + () async { + subscriptionsController.add(const []); + tagsController.add(const []); + currenciesController.add(const []); + ratesController.add(const []); + await Future.delayed(Duration.zero); + + clearInteractions(refreshOverdueNextPaymentsUseCase); + await viewModel.refreshOverdueNextPayments(); + + verifyNever(() => refreshOverdueNextPaymentsUseCase(any())); + }, + ); + + test( + 'refreshOverdueNextPayments does nothing when subscriptions are loading', + () async { + clearInteractions(refreshOverdueNextPaymentsUseCase); + await viewModel.refreshOverdueNextPayments(); + + verifyNever(() => refreshOverdueNextPaymentsUseCase(any())); + }, + ); + test('updateBaseCurrencyCode re-listens to currency rates stream', () async { viewModel.updateBaseCurrencyCode('eur'); await Future.delayed(Duration.zero);