fix(ai): 拆解原型无需求ID任务
This commit is contained in:
42
apps/web/lib/ai-decompose-adoption.test.ts
Normal file
42
apps/web/lib/ai-decompose-adoption.test.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
import { resolveDecomposeDraftRequirementFields } from './ai-decompose-adoption';
|
||||
|
||||
const requirements = [
|
||||
{ id: 'req-1', code: 'REQ001', title: '案例分享基础功能' },
|
||||
{ id: 'req-2', code: 'REQ002', title: '排行榜' },
|
||||
];
|
||||
|
||||
test('keeps prototype-only drafts out of formal requirements during adoption', () => {
|
||||
const result = resolveDecomposeDraftRequirementFields(
|
||||
{
|
||||
requirementName: '预入职人员支持',
|
||||
references: [{ type: 'prototype_note', id: 'QY0020', label: 'QY0020' }],
|
||||
},
|
||||
requirements,
|
||||
);
|
||||
|
||||
assert.deepEqual(result, {
|
||||
requirementId: '',
|
||||
requirementName: '预入职人员支持',
|
||||
});
|
||||
});
|
||||
|
||||
test('maps formal requirement references by code during adoption', () => {
|
||||
const result = resolveDecomposeDraftRequirementFields(
|
||||
{
|
||||
requirementName: '不应覆盖正式需求',
|
||||
references: [
|
||||
{ type: 'requirement', id: 'REQ002', label: 'REQ002 排行榜' },
|
||||
{ type: 'prototype_note', id: 'QY0030', label: 'QY0030' },
|
||||
],
|
||||
},
|
||||
requirements,
|
||||
);
|
||||
|
||||
assert.deepEqual(result, {
|
||||
requirementId: 'req-2',
|
||||
requirementName: undefined,
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user