- 新增代码内业务上下文元数据层(实体字典 + 三大闭环工作流) - 新增 get_business_context / get_entity_schema / get_pending_tasks 运行时工具 - SYSTEM_PROMPT 与技能目录改为先查业务流程/待办再执行 - A2UI 增加 ai_a2ui_submissions 幂等表、表单过期、ui.artifact 事件 - 提交回灌携带 submissionId / fieldErrors / 下一步建议 - 前端 uiArtifacts 归一化与过期表单禁用
67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
import { describe, expect, it } from '@jest/globals';
|
|
import {
|
|
a2uiReviewSubmitInfo,
|
|
a2uiSubmitInfo,
|
|
buildFormSubmitModelContent,
|
|
buildReviewSubmitModelContent,
|
|
} from './ai-chat.submit-content';
|
|
|
|
describe('a2ui submit model content', () => {
|
|
it('表单提交信息解析 submissionId 与 fieldErrors', () => {
|
|
const info = a2uiSubmitInfo({
|
|
a2uiSubmit: {
|
|
formId: 'form-1',
|
|
formTitle: '新增学生',
|
|
values: { name: '张三' },
|
|
submissionId: 'sub-1',
|
|
fieldErrors: [{ field: 'phone', message: '手机号格式错误' }],
|
|
},
|
|
});
|
|
expect(info).toEqual({
|
|
formId: 'form-1',
|
|
title: '新增学生',
|
|
values: { name: '张三' },
|
|
submissionId: 'sub-1',
|
|
fieldErrors: [{ field: 'phone', message: '手机号格式错误' }],
|
|
});
|
|
});
|
|
|
|
it('表单回灌内容包含提交 ID 与结构化错误', () => {
|
|
const content = buildFormSubmitModelContent({
|
|
title: '新增学生',
|
|
values: { name: '张三' },
|
|
submissionId: 'sub-1',
|
|
fieldErrors: [],
|
|
});
|
|
expect(content).toContain('sub-1');
|
|
expect(content).toContain('"name":"张三"');
|
|
expect(content).toContain('fieldErrors');
|
|
});
|
|
|
|
it('审阅提交信息解析 submissionId 与下一步建议', () => {
|
|
const info = a2uiReviewSubmitInfo({
|
|
a2uiReviewSubmit: {
|
|
reviewId: 'review-1',
|
|
reviewTitle: '批量入住导入',
|
|
resultMessage: '已导入 12 条',
|
|
submissionId: 'sub-2',
|
|
nextSteps: [{ key: 'after_checkin', label: '入住完成 → 建议录入费用' }],
|
|
},
|
|
});
|
|
expect(info?.submissionId).toBe('sub-2');
|
|
expect(info?.nextSteps).toHaveLength(1);
|
|
});
|
|
|
|
it('审阅回灌内容包含提交 ID 与下一步建议', () => {
|
|
const content = buildReviewSubmitModelContent({
|
|
reviewId: 'review-1',
|
|
reviewTitle: '批量入住导入',
|
|
resultMessage: '已导入 12 条',
|
|
submissionId: 'sub-2',
|
|
nextSteps: [{ key: 'after_checkin', label: '入住完成 → 建议录入费用' }],
|
|
});
|
|
expect(content).toContain('sub-2');
|
|
expect(content).toContain('建议录入费用');
|
|
});
|
|
});
|