feat: refine AI navigation and accessibility recovery
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:miaoji_zhang/shared/api/backend_identity.dart';
|
||||
import 'package:miaoji_zhang/shared/api/business_api.dart';
|
||||
import 'package:miaoji_zhang/shared/api/sse_frame_accumulator.dart';
|
||||
import 'package:miaoji_zhang/shared/services/current_ledger_store.dart';
|
||||
import 'package:miaoji_zhang/shared/services/screenshot_channel.dart';
|
||||
import 'package:miaoji_zhang/shared/widgets/app_icons.dart';
|
||||
|
||||
void main() {
|
||||
@@ -176,6 +177,38 @@ void main() {
|
||||
expect(report.balance, 2400);
|
||||
});
|
||||
|
||||
test('无障碍连接状态区分重连、正常和异常', () {
|
||||
final reconnecting = RecognitionStatus.fromMap({
|
||||
'accessibilityAuthorized': true,
|
||||
'accessibilityConnected': false,
|
||||
'accessibilityConnectionState': 'reconnecting',
|
||||
'accessibilityLastConnectedAt': 1724472000000,
|
||||
'settings': jsonEncode({'accessibilityEvents': true}),
|
||||
});
|
||||
final connected = RecognitionStatus.fromMap({
|
||||
'accessibilityAuthorized': true,
|
||||
'accessibilityConnected': true,
|
||||
'accessibilityConnectionState': 'connected',
|
||||
'settings': '{}',
|
||||
});
|
||||
final disconnected = RecognitionStatus.fromMap({
|
||||
'accessibilityAuthorized': true,
|
||||
'accessibilityConnected': false,
|
||||
'accessibilityConnectionState': 'disconnected',
|
||||
'settings': '{}',
|
||||
});
|
||||
|
||||
expect(
|
||||
reconnecting.accessibilityConnectionState,
|
||||
AccessibilityConnectionState.reconnecting,
|
||||
);
|
||||
expect(reconnecting.accessibilityConnectionLabel, '正在重连');
|
||||
expect(reconnecting.accessibilityLastConnectedAt, isNotNull);
|
||||
expect(connected.accessibilityConnectionLabel, '已连接');
|
||||
expect(disconnected.accessibilityConnectionLabel, '服务未连接');
|
||||
expect(disconnected.accessibilityNeedsRecovery, isTrue);
|
||||
});
|
||||
|
||||
test('分类图标目录至少 32 个且键值不重复', () {
|
||||
final keys = AppIcons.categoryCatalog.map((item) => item.key).toList();
|
||||
expect(keys.length, greaterThanOrEqualTo(32));
|
||||
|
||||
Reference in New Issue
Block a user