refactor(apps): 重构数据层目录结构并新增启动预热编排器

This commit is contained in:
zl-q
2026-03-29 20:26:30 +08:00
parent 33340de8f9
commit 4db9a13bfe
108 changed files with 1653 additions and 1320 deletions
@@ -1,13 +1,14 @@
import 'package:dio/dio.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:social_app/core/network/i_api_client.dart';
import 'package:social_app/data/repositories/calendar_event_repository.dart';
import 'package:social_app/data/repositories/friend_repository.dart';
import 'package:social_app/data/repositories/inbox_repository.dart';
import 'package:social_app/data/repositories/models/calendar_event.dart';
import 'package:social_app/data/repositories/models/friend_request.dart';
import 'package:social_app/data/repositories/models/inbox_message.dart';
import 'package:social_app/data/repositories/user_repository.dart';
import 'package:social_app/data/network/i_api_client.dart';
import 'package:social_app/data/cache/cache_store.dart';
import 'package:social_app/features/calendar/data/repositories/calendar_repository.dart';
import 'package:social_app/features/contacts/data/repositories/friend_repository.dart';
import 'package:social_app/features/messages/data/repositories/inbox_repository.dart';
import 'package:social_app/features/contacts/data/models/friend_request.dart';
import 'package:social_app/features/messages/data/models/inbox_message.dart';
import 'package:social_app/features/calendar/data/models/schedule_item_model.dart';
import 'package:social_app/features/contacts/data/repositories/user_repository.dart';
class _FakeApiClient implements IApiClient {
final Map<String, dynamic> _getResponses = <String, dynamic>{};
@@ -90,7 +91,13 @@ void main() {
},
]);
final repository = InboxRepositoryImpl(client);
final repository = InboxRepositoryImpl(
apiClient: client,
store: HybridCacheStore(
memory: MemoryCacheStore(),
persistent: PersistentCacheStore(),
),
);
final result = await repository.getMessages(isRead: false);
expect(result.single.messageType, InboxMessageType.calendar);
@@ -109,7 +116,13 @@ void main() {
'created_at': '2026-03-27T08:00:00Z',
});
final repository = FriendRepositoryImpl(client);
final repository = FriendRepositoryImpl(
apiClient: client,
store: HybridCacheStore(
memory: MemoryCacheStore(),
persistent: PersistentCacheStore(),
),
);
final request = await repository.getRequestById('f1');
expect(request.status, FriendRequestStatus.accepted);
@@ -129,7 +142,13 @@ void main() {
'created_at': '2026-03-27T08:00:00Z',
});
final repository = FriendRepositoryImpl(client);
final repository = FriendRepositoryImpl(
apiClient: client,
store: HybridCacheStore(
memory: MemoryCacheStore(),
persistent: PersistentCacheStore(),
),
);
await expectLater(
repository.getRequestsByIds(['f1', 'missing']),
throwsStateError,
@@ -137,7 +156,7 @@ void main() {
},
);
test('CalendarEventRepository maps archived status', () async {
test('CalendarRepository maps archived status', () async {
final client = _FakeApiClient();
client.setGet('/api/v1/schedule-items/e1', {
'id': 'e1',
@@ -156,10 +175,16 @@ void main() {
'updated_at': '2026-03-27T09:00:00Z',
});
final repository = CalendarEventRepositoryImpl(client);
final repository = CalendarRepository(
store: HybridCacheStore(
memory: MemoryCacheStore(),
persistent: PersistentCacheStore(),
),
apiClient: client,
);
final event = await repository.getById('e1');
expect(event.status, CalendarEventStatus.archived);
expect(event.status, ScheduleStatus.archived);
});
test('UserRepository returns shared user summary', () async {