merge: 合并首页图片选择功能

This commit is contained in:
qzl
2026-03-11 17:27:26 +08:00
8 changed files with 163 additions and 18 deletions
@@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:flutter_test/flutter_test.dart';
import 'package:image_picker/image_picker.dart';
import 'package:social_app/core/api/mock_api_client.dart';
import 'package:social_app/features/chat/data/ai/ai_decision_engine.dart';
import 'package:social_app/features/chat/data/models/ag_ui_event.dart';
@@ -12,7 +13,7 @@ class TestableAgUiService extends AgUiService {
TestableAgUiService({super.onEvent});
@override
Future<void> sendMessage(String content) async {
Future<void> sendMessage(String content, {List<XFile>? images}) async {
await mockEventStream(content);
}
+3 -2
View File
@@ -1,5 +1,6 @@
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:image_picker/image_picker.dart';
import 'package:social_app/features/chat/data/models/ag_ui_event.dart';
import 'package:social_app/features/chat/data/models/chat_list_item.dart';
import 'package:social_app/features/chat/data/services/ag_ui_service.dart';
@@ -9,14 +10,14 @@ class MockAgUiService extends AgUiService {
MockAgUiService() : super(onEvent: (_) {});
@override
Future<void> sendMessage(String content) async {}
Future<void> sendMessage(String content, {List<XFile>? images}) async {}
}
class _ThrowingAgUiService extends AgUiService {
_ThrowingAgUiService() : super(onEvent: (_) {});
@override
Future<void> sendMessage(String content) async {
Future<void> sendMessage(String content, {List<XFile>? images}) async {
throw StateError('network down');
}
}
@@ -3,6 +3,7 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:image_picker/image_picker.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:social_app/core/api/api_exception.dart';
import 'package:social_app/features/chat/data/models/ag_ui_event.dart';
@@ -38,7 +39,7 @@ class _WaitingAgUiService extends AgUiService {
final Completer<void> _pending = Completer<void>();
@override
Future<void> sendMessage(String content) async {
Future<void> sendMessage(String content, {List<XFile>? images}) async {
onEvent(RunStartedEvent(threadId: 't1', runId: 'r1'));
return _pending.future;
}