修复工作人员作业预检状态与提示

This commit is contained in:
czl231
2026-09-05 20:17:07 +08:00
parent 1670d5880f
commit cec02c8887
8 changed files with 191 additions and 12 deletions

View File

@@ -51,6 +51,26 @@ class _FailOnceRepository extends ServiceRepository {
}
}
/// 返回包含一个真实阻断项和一个暂不检查项的固定预检结果。
class _BlockedRepository extends ServiceRepository {
_BlockedRepository()
: super(
ApiClient(() => '', baseUrl: 'https://api.example.com'),
_UnusedLocationService(),
);
@override
Future<PreflightResult> preflight() async => const PreflightResult(
roleCode: 'delivery',
workStatus: 'on_duty',
canWork: false,
checks: {
'credential': {'status': 'blocked', 'reason': 'missing'},
'daily_training': {'status': 'not_configured'},
},
);
}
/// 点击重新加载后应成功刷新,且测试过程不得出现 Flutter 断言。
void main() {
testWidgets('作业检查失败后可重新加载', (tester) async {
@@ -74,4 +94,21 @@ void main() {
expect(repository.calls, 2);
expect(tester.takeException(), isNull);
});
testWidgets('仅统计阻断项并显示资质处理指引', (tester) async {
await tester.pumpWidget(
MaterialApp(
home: PreflightPage(
session: StaffSession(_EmptySessionStore()),
repository: _BlockedRepository(),
),
),
);
await tester.pumpAndSettle();
expect(find.text('完成 1 项阻断后可进入'), findsOneWidget);
expect(find.text('暂不检查'), findsOneWidget);
expect(find.text('尚未配置有效资质,请联系所属组织管理员补充或审核'), findsOneWidget);
expect(find.text('下班打卡'), findsOneWidget);
});
}