refactor: 重构聊天数据层至core并简化首页UI
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
import 'dart:async';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:social_app/app/services/app_prewarm_orchestrator.dart';
|
||||
import 'package:social_app/core/chat/chat_api.dart';
|
||||
import 'package:social_app/core/chat/chat_history_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/messages/data/repositories/inbox_repository.dart';
|
||||
import 'package:social_app/features/chat/data/repositories/chat_history_repository.dart';
|
||||
|
||||
class _FakeApiClient implements IApiClient {
|
||||
@override
|
||||
@@ -44,15 +46,65 @@ class _FakeApiClient implements IApiClient {
|
||||
}
|
||||
}
|
||||
|
||||
class _FakeChatApi implements ChatApi {
|
||||
@override
|
||||
Future<void> cancelRun({required String threadId, required String runId}) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> createRun(Map<String, dynamic> runInput) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> fetchHistory({
|
||||
String? threadId,
|
||||
DateTime? beforeDate,
|
||||
}) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Uint8List> fetchAttachmentPreview(String previewPath) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Stream<String>> streamRunEvents(
|
||||
String threadId, {
|
||||
String? lastEventId,
|
||||
}) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> transcribeAudio(String filePath) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> uploadAttachment({
|
||||
required String threadId,
|
||||
required String filename,
|
||||
required String mimeType,
|
||||
required Uint8List bytes,
|
||||
}) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
late HybridCacheStore store;
|
||||
late _FakeApiClient apiClient;
|
||||
late _FakeChatApi chatApi;
|
||||
late CalendarRepository calendarRepository;
|
||||
late InboxRepository inboxRepository;
|
||||
late ChatHistoryRepository chatHistoryRepository;
|
||||
|
||||
setUp(() {
|
||||
apiClient = _FakeApiClient();
|
||||
chatApi = _FakeChatApi();
|
||||
store = HybridCacheStore(
|
||||
memory: MemoryCacheStore(),
|
||||
persistent: PersistentCacheStore(),
|
||||
@@ -60,7 +112,7 @@ void main() {
|
||||
calendarRepository = CalendarRepository(apiClient: apiClient, store: store);
|
||||
inboxRepository = InboxRepositoryImpl(apiClient: apiClient, store: store);
|
||||
chatHistoryRepository = ChatHistoryRepository(
|
||||
apiClient: apiClient,
|
||||
chatApi: chatApi,
|
||||
store: store,
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user