docs: finalize navigation decoupling and unified cache rollout

This commit is contained in:
qzl
2026-03-20 15:46:24 +08:00
parent 20f3285244
commit 3f1858d733
3 changed files with 35 additions and 6 deletions
@@ -47,7 +47,7 @@ void main() {
remoteCalls += 1;
return const <ScheduleItemModel>[];
},
loadMonthFromRemote: (_, __) async => const <ScheduleItemModel>[],
loadMonthFromRemote: (start, end) async => const <ScheduleItemModel>[],
);
final result = await repository.getDayEvents(date);
@@ -1,10 +1,14 @@
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:social_app/core/cache/hybrid_cache_store.dart';
import 'package:social_app/core/cache/memory_cache_store.dart';
import 'package:social_app/core/cache/persistent_cache_store.dart';
import 'package:social_app/core/api/i_api_client.dart';
import 'package:social_app/core/di/injection.dart';
import 'package:social_app/features/friends/data/friends_api.dart';
import 'package:social_app/features/settings/data/services/settings_user_cache.dart';
import 'package:social_app/features/settings/data/services/user_profile_cache_repository.dart';
import 'package:social_app/features/settings/ui/screens/settings_screen.dart';
import 'package:social_app/features/users/data/models/user_response.dart';
import 'package:social_app/features/users/data/users_api.dart';
@@ -78,10 +82,21 @@ void main() {
if (sl.isRegistered<SettingsUserCache>()) {
sl.unregister<SettingsUserCache>();
}
if (sl.isRegistered<UserProfileCacheRepository>()) {
sl.unregister<UserProfileCacheRepository>();
}
usersApi = _FakeUsersApi(apiClient);
final repository = UserProfileCacheRepository(
store: HybridCacheStore(
memory: MemoryCacheStore(),
persistent: PersistentCacheStore(),
),
remoteLoader: usersApi.getMe,
);
sl.registerSingleton<UsersApi>(usersApi);
sl.registerSingleton<FriendsApi>(_FakeFriendsApi(apiClient));
sl.registerSingleton<SettingsUserCache>(SettingsUserCache());
sl.registerSingleton<UserProfileCacheRepository>(repository);
sl.registerSingleton<SettingsUserCache>(SettingsUserCache(repository));
});
tearDown(() async {
@@ -94,6 +109,9 @@ void main() {
if (sl.isRegistered<SettingsUserCache>()) {
await sl.unregister<SettingsUserCache>();
}
if (sl.isRegistered<UserProfileCacheRepository>()) {
await sl.unregister<UserProfileCacheRepository>();
}
});
testWidgets('settings screen removes account row and shows logout button', (