新增:健康事件时间线接入真实数据(T2-14 时间线半边)
- 时间线页:occurred_at DESC cursor 分页 + 月分组组头,四态齐备; 六类事件经 RecordTypeDot 映射(增补喂养/洗护/测量三型,色族复用 已审计色对),类型 TagPill 双通道 - 事件录入表单:六类类型选择器、金额以元录入/整数分传输(money.dart 换算)、UTC 时间戳约定与体重表单一致 - 事件编辑页:顶层 PATCH 差量提交(title/notes/amountCents + version), 40902 照 T2-12 模式自动经时间线检索取新 version 重提(保留输入) - 档案页:月度花费卡接 summary.monthlyExpense(分→元展示)、tz 透传 设备时区固定偏移(T2-13 遗留③)、健康时间线导航入口 - 埋点:health_record 域 create 三事件 + viewed(recordType=health_event) 挂通;新增 edit_succeeded/failed 封装(failureReason 含 conflict) - 测试 224 → 250 全绿(+26);analyze 0 问题;format 无 diff Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,8 +4,8 @@ import 'package:patbond_flutter/core/theme/app_theme.dart';
|
||||
import 'package:patbond_flutter/core/widgets/record_type_dot.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets('五类映射齐备:图标 + 双色(05 §2 表)', (tester) async {
|
||||
// 映射表唯一出口:五类各有图标、底色、图标色、文字色、文案。
|
||||
testWidgets('全类型映射齐备:图标 + 双色(05 §2 表 + T2-14 增补三型)', (tester) async {
|
||||
// 映射表唯一出口:各类型均有图标、底色、图标色、文字色、文案。
|
||||
expect(recordTypeStyles.length, RecordType.values.length);
|
||||
expect(
|
||||
recordTypeStyles[RecordType.weight]!.iconColor,
|
||||
@@ -26,6 +26,25 @@ void main() {
|
||||
expect(recordTypeStyles[RecordType.medical]!.inkColor, AppColors.errorDark);
|
||||
expect(recordTypeStyles[RecordType.other]!.inkColor, AppColors.inkSoft);
|
||||
expect(recordTypeStyles[RecordType.medical]!.label, '就医');
|
||||
// T2-14 增补三型:色族复用已审计色对,仅图标/文案区分。
|
||||
expect(
|
||||
recordTypeStyles[RecordType.feeding]!.inkColor,
|
||||
AppColors.successInk,
|
||||
);
|
||||
expect(recordTypeStyles[RecordType.feeding]!.label, '喂养');
|
||||
expect(
|
||||
recordTypeStyles[RecordType.grooming]!.inkColor,
|
||||
AppColors.accentDark,
|
||||
);
|
||||
expect(recordTypeStyles[RecordType.grooming]!.label, '洗护');
|
||||
expect(
|
||||
recordTypeStyles[RecordType.measurement]!.inkColor,
|
||||
AppColors.primaryDark,
|
||||
);
|
||||
expect(recordTypeStyles[RecordType.measurement]!.label, '测量');
|
||||
// 三型图标彼此不同(与既有五型也不重复),保证图标通道可辨。
|
||||
final icons = {for (final style in recordTypeStyles.values) style.icon};
|
||||
expect(icons.length, RecordType.values.length);
|
||||
});
|
||||
|
||||
testWidgets('圆标渲染:尺寸档正确、图标为 dot 的 50%、底为基色 8% 淡染', (tester) async {
|
||||
|
||||
Reference in New Issue
Block a user