43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
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,
|
|
});
|
|
});
|