forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction_items_initial_load_test.dart
More file actions
57 lines (47 loc) · 1.85 KB
/
Copy pathaction_items_initial_load_test.dart
File metadata and controls
57 lines (47 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import 'dart:async';
import 'package:flutter_test/flutter_test.dart';
import 'package:omi/backend/preferences.dart';
import 'package:omi/backend/schema/action_item.dart';
import 'package:omi/providers/action_items_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() {
test('shares the Home preload with the Tasks page initial load', () async {
SharedPreferences.setMockInitialValues({});
await SharedPreferencesUtil.init();
final firstResponse = Completer<ActionItemsResponse>();
var requests = 0;
final provider = ActionItemsProvider(
getActionItems: ({limit = 50, offset = 0, completed, conversationId, startDate, endDate}) {
requests++;
return firstResponse.future;
},
);
final tasksPageLoad = provider.ensureLoaded(showShimmer: true);
expect(requests, 1);
firstResponse.complete(const ActionItemsResponse(actionItems: [], hasMore: false));
await tasksPageLoad;
await provider.ensureLoaded(showShimmer: true);
expect(requests, 1);
provider.dispose();
});
test('retries the initial load after the preload fails', () async {
SharedPreferences.setMockInitialValues({});
await SharedPreferencesUtil.init();
final firstResponse = Completer<ActionItemsResponse?>();
var requests = 0;
final provider = ActionItemsProvider(
getActionItems: ({limit = 50, offset = 0, completed, conversationId, startDate, endDate}) {
requests++;
return requests == 1
? firstResponse.future
: Future.value(const ActionItemsResponse(actionItems: [], hasMore: false));
},
);
final initialLoad = provider.ensureLoaded(showShimmer: true);
firstResponse.complete(null);
await initialLoad;
await provider.ensureLoaded(showShimmer: true);
expect(requests, 2);
provider.dispose();
});
}