e55f12cdc1
- 重命名 test_react_runner.py 为 test_runner.py - 新增 test_utils.py 测试工具函数 - 更新现有测试用例适配新架构
75 lines
2.0 KiB
Dart
75 lines
2.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:social_app/features/chat/ui/widgets/ui_schema_renderer.dart';
|
|
|
|
void main() {
|
|
group('UiSchemaRenderer', () {
|
|
testWidgets('renders stack title and badge', (tester) async {
|
|
final schema = {
|
|
'version': '2.0',
|
|
'locale': 'zh-CN',
|
|
'status': 'success',
|
|
'theme': 'default',
|
|
'root': {
|
|
'type': 'stack',
|
|
'direction': 'vertical',
|
|
'appearance': 'card',
|
|
'children': [
|
|
{'type': 'text', 'role': 'title', 'content': '日程已创建'},
|
|
{'type': 'badge', 'label': 'SUCCESS', 'status': 'success'},
|
|
],
|
|
},
|
|
};
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(body: UiSchemaRenderer.renderSchema(schema)),
|
|
),
|
|
);
|
|
|
|
expect(find.text('日程已创建'), findsOneWidget);
|
|
expect(find.text('SUCCESS'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('renders kv node values', (tester) async {
|
|
final schema = {
|
|
'version': '2.0',
|
|
'root': {
|
|
'type': 'stack',
|
|
'direction': 'vertical',
|
|
'appearance': 'card',
|
|
'children': [
|
|
{
|
|
'type': 'kv',
|
|
'items': [
|
|
{'key': 'title', 'label': '标题', 'value': '评审会'},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
};
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(body: UiSchemaRenderer.renderSchema(schema)),
|
|
),
|
|
);
|
|
|
|
expect(find.text('标题'), findsOneWidget);
|
|
expect(find.text('评审会'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('renders fallback for invalid schema', (tester) async {
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: Scaffold(
|
|
body: UiSchemaRenderer.renderSchema({'version': '2.0'}),
|
|
),
|
|
),
|
|
);
|
|
|
|
expect(find.textContaining('无效 UI Schema'), findsOneWidget);
|
|
});
|
|
});
|
|
}
|