feat: 重构会话管理与提醒通知系统
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:social_app/data/cache/cache_policy.dart';
|
||||
import 'package:social_app/data/cache/cache_scope.dart';
|
||||
import 'package:social_app/data/cache/cached_repository.dart';
|
||||
import 'package:social_app/data/cache/cache_store.dart';
|
||||
|
||||
@@ -29,6 +30,14 @@ class _IntCachedRepository extends CachedRepository<int> {
|
||||
|
||||
void main() {
|
||||
group('CachedRepository', () {
|
||||
setUp(() {
|
||||
CacheScope.configureProvider(() => 'user:test');
|
||||
});
|
||||
|
||||
tearDown(() {
|
||||
CacheScope.resetProvider();
|
||||
});
|
||||
|
||||
test('reads from cache after first load', () async {
|
||||
final repo = _IntCachedRepository(
|
||||
store: HybridCacheStore(
|
||||
@@ -59,5 +68,22 @@ void main() {
|
||||
expect(refreshed, 2);
|
||||
expect(repo.loadCount, 2);
|
||||
});
|
||||
|
||||
test('falls back to remote load when scope is unavailable', () async {
|
||||
CacheScope.resetProvider();
|
||||
final repo = _IntCachedRepository(
|
||||
store: HybridCacheStore(
|
||||
memory: MemoryCacheStore(),
|
||||
persistent: PersistentCacheStore(),
|
||||
),
|
||||
);
|
||||
|
||||
final first = await repo.fetch();
|
||||
final second = await repo.fetch();
|
||||
|
||||
expect(first, 1);
|
||||
expect(second, 2);
|
||||
expect(repo.loadCount, 2);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user