···
41
-
test('should load timeline when authenticated', () async {
41
+
test('should load discover feed when authenticated by default', () async {
when(mockAuthProvider.isAuthenticated).thenReturn(true);
final mockResponse = TimelineResponse(
···
50
-
mockApiService.getTimeline(
50
+
mockApiService.getDiscover(
timeframe: anyNamed('timeframe'),
limit: anyNamed('limit'),
···
).thenAnswer((_) async => mockResponse);
await feedProvider.loadFeed(refresh: true);
60
+
expect(feedProvider.posts.length, 1);
61
+
expect(feedProvider.error, null);
62
+
expect(feedProvider.isLoading, false);
65
+
test('should load timeline when feed type is For You', () async {
66
+
when(mockAuthProvider.isAuthenticated).thenReturn(true);
68
+
final mockResponse = TimelineResponse(
69
+
feed: [_createMockPost()],
70
+
cursor: 'next-cursor',
74
+
mockApiService.getTimeline(
75
+
sort: anyNamed('sort'),
76
+
timeframe: anyNamed('timeframe'),
77
+
limit: anyNamed('limit'),
78
+
cursor: anyNamed('cursor'),
80
+
).thenAnswer((_) async => mockResponse);
82
+
await feedProvider.setFeedType(FeedType.forYou);
expect(feedProvider.posts.length, 1);
expect(feedProvider.error, null);
···
timeframe: anyNamed('timeframe'),
limit: anyNamed('limit'),
301
+
cursor: anyNamed('cursor'),
).thenAnswer((_) async => firstResponse);
280
-
await feedProvider.loadFeed(refresh: true);
305
+
await feedProvider.setFeedType(FeedType.forYou);
final secondResponse = TimelineResponse(
···
).thenAnswer((_) async => response);
319
-
await feedProvider.fetchTimeline(refresh: true);
344
+
await feedProvider.setFeedType(FeedType.forYou);
await feedProvider.loadMore();
// Should not make additional calls while loading
···
).thenThrow(Exception('Network error'));
359
-
await feedProvider.loadFeed(refresh: true);
384
+
await feedProvider.setFeedType(FeedType.forYou);
expect(feedProvider.error, isNotNull);