diff --git a/lib/model/response/survey_response.dart b/lib/model/response/survey_response.dart index b311ede..f336a16 100644 --- a/lib/model/response/survey_response.dart +++ b/lib/model/response/survey_response.dart @@ -26,10 +26,9 @@ class SurveyResponse { id: id ?? '', title: title ?? '', description: description ?? '', - coverImageUrl: getHighQualityCoverImageUrl(), + coverImageUrl: highResolutionCoverImageUrl, ); - String getHighQualityCoverImageUrl() { - return (coverImageUrl != null) ? "${coverImageUrl}l" : ""; - } + String get highResolutionCoverImageUrl => + (coverImageUrl != null) ? "${coverImageUrl}l" : ""; } diff --git a/lib/screens/home/home_screen.dart b/lib/screens/home/home_screen.dart index 20ee5af..3a58f39 100644 --- a/lib/screens/home/home_screen.dart +++ b/lib/screens/home/home_screen.dart @@ -34,7 +34,6 @@ class _HomeScreenState extends ConsumerState { } Future _initData() async { - ref.read(homeViewModelProvider.notifier).loadCachedSurveys(); ref.read(homeViewModelProvider.notifier).loadSurveys(); } diff --git a/lib/screens/home/home_view_model.dart b/lib/screens/home/home_view_model.dart index 8c7ae85..83b0408 100644 --- a/lib/screens/home/home_view_model.dart +++ b/lib/screens/home/home_view_model.dart @@ -40,6 +40,11 @@ class HomeViewModel extends StateNotifier { Stream get error => _error.stream; void loadSurveys() async { + _loadSurveysFromCache(); + _loadSurveysFromRemote(); + } + + void _loadSurveysFromRemote() async { final result = await _getSurveysUseCase.call(SurveysParams( pageNumber: _pageNumber, pageSize: _pageSize, @@ -54,7 +59,7 @@ class HomeViewModel extends StateNotifier { } } - void loadCachedSurveys() async { + void _loadSurveysFromCache() async { final result = await _getCachedSurveysUseCase.call(); if (result is Success>) { final cachedSurveys = diff --git a/test/screens/home/home_view_model_test.dart b/test/screens/home/home_view_model_test.dart index afd633a..c783b05 100644 --- a/test/screens/home/home_view_model_test.dart +++ b/test/screens/home/home_view_model_test.dart @@ -41,28 +41,23 @@ void main() { }); test( - 'loads surveys successfully and emits LoadSurveysSuccess state', + 'loads surveys successfully and emits LoadSurveysSuccess and LoadCacheSurveysSuccess states', () async { when(mockGetSurveysUseCase.call(any)).thenAnswer( (_) async => Success(surveys), ); - final surveysStream = homeViewModel.surveys; - homeViewModel.loadSurveys(); - expect(surveysStream, emitsInOrder([surveys])); - }, - ); - - test( - 'loads cached surveys successfully and emits LoadCachedSurveysSuccess state', - () async { when(mockGetCachedSurveysUseCase.call()) .thenAnswer((_) => Future.value(Success(surveys))); final surveysStream = homeViewModel.surveys; final stateStream = homeViewModel.stream; - homeViewModel.loadCachedSurveys(); + homeViewModel.loadSurveys(); expect(surveysStream, emitsInOrder([surveys])); - expect(stateStream, - emitsInOrder([const HomeState.loadCachedSurveysSuccess()])); + expect( + stateStream, + emitsInOrder([ + const HomeState.loadCachedSurveysSuccess(), + const HomeState.loadSurveysSuccess() + ])); }, ); @@ -72,6 +67,9 @@ void main() { when(mockGetSurveysUseCase.call(any)).thenAnswer( (_) async => Failed(exception), ); + when(mockGetCachedSurveysUseCase.call()).thenAnswer( + (_) async => Failed(exception), + ); final errorStream = homeViewModel.error; homeViewModel.loadSurveys(); expect(