- 饮食: 新增 DietCommentaryPolicy + diet_record_logic, 饮食记录逻辑抽取复用 - 通知管理: 分隔线改为仿通知中心样式, 跳过图标区域只留文字下方 - 侧边栏: 对话记录操作栏浮层修复 + 常用功能间距收紧 - 智能体: 欢迎卡片去 400ms 延迟 + 胶囊去阴影 - 后端: AI 会话仓库新增方法 + 饮食评论策略 + 健康记录规则调整 - 其他: api_client IP 适配 + 多页面 UI 微调 + 新增测试
57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using Health.Application.AI;
|
||
using Health.Domain.Entities;
|
||
using Health.Domain.Enums;
|
||
|
||
namespace Health.Tests;
|
||
|
||
public sealed class DietCommentaryTests
|
||
{
|
||
[Fact]
|
||
public void FoodDescription_ContainsOnlyStructuredFoodData()
|
||
{
|
||
var result = DietCommentaryPolicy.BuildFoodDescription(
|
||
[
|
||
new DietCommentaryFood("番茄炒蛋", "半盘", 220),
|
||
new DietCommentaryFood("米饭", "一碗", 260),
|
||
]);
|
||
|
||
Assert.Equal("番茄炒蛋(半盘,220千卡)、米饭(一碗,260千卡)", result);
|
||
Assert.DoesNotContain("请结合", result);
|
||
}
|
||
|
||
[Fact]
|
||
public void LegacyArtifact_RequiresEveryUserMessageToUseInternalPrefix()
|
||
{
|
||
var artifact = new Conversation
|
||
{
|
||
Messages =
|
||
[
|
||
new ConversationMessage
|
||
{
|
||
Role = MessageRole.User,
|
||
Content = DietCommentaryPolicy.LegacyPromptPrefix + "食物为:米饭",
|
||
},
|
||
new ConversationMessage
|
||
{
|
||
Role = MessageRole.Assistant,
|
||
Content = "注意搭配蔬菜",
|
||
},
|
||
],
|
||
};
|
||
var normal = new Conversation
|
||
{
|
||
Messages =
|
||
[
|
||
new ConversationMessage
|
||
{
|
||
Role = MessageRole.User,
|
||
Content = "我想了解今天的饮食记录",
|
||
},
|
||
],
|
||
};
|
||
|
||
Assert.True(DietCommentaryPolicy.IsLegacyArtifact(artifact.Messages));
|
||
Assert.False(DietCommentaryPolicy.IsLegacyArtifact(normal.Messages));
|
||
}
|
||
}
|