refactor: 移除前端 Mock API,新增共享组件,优化认证流程

- 删除 mock_api_client、mock_calendar_service、mock_history_service
- 新增 fixed_length_code_input、link_button、message_composer 共享组件
- 优化登录/注册/密码重置页面使用新组件
- 简化 injection.dart 移除 mock 分支
- 更新 env.dart 配置(BACKEND_URL 替换 API_URL)
- 后端 agentscope 工具和测试更新
- 重构 AGENTS.md 文档结构
- 新增 deploy/ 目录和 protocol 文档
This commit is contained in:
qzl
2026-03-12 16:41:45 +08:00
parent d7fbb74bf8
commit 01c36eb32e
70 changed files with 5138 additions and 5829 deletions
@@ -1,77 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get_it/get_it.dart';
import 'package:social_app/core/di/injection.dart';
import 'package:social_app/features/calendar/data/models/schedule_item_model.dart';
import 'package:social_app/features/calendar/data/services/mock_calendar_service.dart';
import 'package:social_app/features/calendar/ui/screens/calendar_event_detail_screen.dart';
class _FakeCalendarService extends CalendarService {
final ScheduleItemModel? event;
_FakeCalendarService({required this.event}) : super(apiClient: null);
@override
Future<ScheduleItemModel?> getEventById(String id) async {
return event;
}
}
void main() {
final getIt = GetIt.instance;
setUp(() async {
await getIt.reset();
});
testWidgets('详情页显示结构化提醒时间并不显示metadata原样区块', (tester) async {
sl.registerSingleton<CalendarService>(
_FakeCalendarService(
event: ScheduleItemModel(
id: 'evt_1',
ownerId: 'user-1',
title: '评审会',
startAt: DateTime(2026, 3, 11, 15, 0),
endAt: DateTime(2026, 3, 11, 16, 0),
metadata: ScheduleMetadata(
color: '#4F46E5',
location: '会议室A',
reminderMinutes: 15,
version: 1,
),
),
),
);
await tester.pumpWidget(
const MaterialApp(home: CalendarEventDetailScreen(eventId: 'evt_1')),
);
await tester.pumpAndSettle();
expect(find.text('提醒时间'), findsOneWidget);
expect(find.text('开始前15分钟'), findsOneWidget);
expect(find.text('metadata'), findsNothing);
});
testWidgets('提醒分钟为空时显示无', (tester) async {
sl.registerSingleton<CalendarService>(
_FakeCalendarService(
event: ScheduleItemModel(
id: 'evt_2',
ownerId: 'user-1',
title: '同步会',
startAt: DateTime(2026, 3, 12, 10, 0),
metadata: ScheduleMetadata(version: 1),
),
),
);
await tester.pumpWidget(
const MaterialApp(home: CalendarEventDetailScreen(eventId: 'evt_2')),
);
await tester.pumpAndSettle();
expect(find.text('提醒时间'), findsOneWidget);
expect(find.text(''), findsOneWidget);
});
}