优化用户端首页服务归属展示

This commit is contained in:
czl231
2026-09-02 21:59:24 +08:00
parent dd250d80a0
commit 2033a9407e
11 changed files with 321 additions and 37 deletions

View File

@@ -0,0 +1,66 @@
// 功能描述:验证服务归属卡片的信息层级、空值状态和长名称约束。
// 版本1.0.0
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:user_app/ui/features/home/service_relation_card.dart';
/// 验证服务归属卡片的三类核心展示状态。
void main() {
/// 构建统一测试宿主,提供 Material 主题和稳定宽度。
Widget testHost(Map<String, Object?>? relation) => MaterialApp(
home: Scaffold(
body: SizedBox(
width: 390,
child: Padding(
padding: const EdgeInsets.all(24),
child: ServiceRelationCard(relation: relation),
),
),
),
);
testWidgets('气站与配送点使用独立标签展示', (tester) async {
await tester.pumpWidget(
testHost({
'gas_name': '和气城南气站',
'delivery_name': '安顺路配送点',
}),
);
expect(find.text('当前服务归属'), findsOneWidget);
expect(find.text('所属气站'), findsOneWidget);
expect(find.text('和气城南气站'), findsOneWidget);
expect(find.text('服务配送点'), findsOneWidget);
expect(find.text('安顺路配送点'), findsOneWidget);
expect(find.text('和气城南气站 安顺路配送点'), findsNothing);
});
testWidgets('没有配送点时明确显示气站直接服务', (tester) async {
await tester.pumpWidget(testHost({'gas_name': '和气城南气站'}));
expect(find.text('服务方式'), findsOneWidget);
expect(find.text('气站直接服务'), findsOneWidget);
expect(find.text('服务配送点'), findsNothing);
});
testWidgets('没有服务关系时显示明确空状态', (tester) async {
await tester.pumpWidget(testHost(null));
expect(find.text('尚未建立服务关系'), findsOneWidget);
expect(find.text('所属气站'), findsNothing);
});
testWidgets('较长组织名称最多显示两行', (tester) async {
const longName = '和气城市综合能源安全服务城南中心气站';
await tester.pumpWidget(
testHost({
'gas_name': longName,
'delivery_name': '安顺路配送点',
}),
);
final nameText = tester.widget<Text>(find.text(longName));
expect(nameText.maxLines, 2);
expect(nameText.overflow, TextOverflow.ellipsis);
});
}