feat(版本详情): 优化任务统计与测试轮次

This commit is contained in:
Script Generator
2026-06-26 15:12:24 +08:00
parent 914e6180c1
commit 2d802318fa
16 changed files with 631 additions and 65 deletions

View File

@@ -0,0 +1,36 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import { orderByRequirementForGrouping } from './requirement-grouping';
interface GroupableItem {
id: string;
requirementId?: string;
title?: string;
}
test('keeps later-created dev tasks beside existing tasks of the same requirement before pagination', () => {
const tasks: GroupableItem[] = [
{ id: 'task-1', requirementId: 'req-1', title: 'existing req 1' },
{ id: 'task-2', requirementId: 'req-2', title: 'existing req 2' },
{ id: 'task-3', requirementId: 'req-3', title: 'existing req 3' },
{ id: 'task-4', requirementId: 'req-1', title: 'new req 1' },
];
const ordered = orderByRequirementForGrouping(tasks, ['req-1', 'req-2', 'req-3'], (task: GroupableItem) => task.requirementId);
assert.deepEqual(ordered.map((task: GroupableItem) => task.id), ['task-1', 'task-4', 'task-2', 'task-3']);
});
test('keeps unlinked test cases in a stable trailing group', () => {
const cases: GroupableItem[] = [
{ id: 'tc-1', requirementId: 'req-2' },
{ id: 'tc-2', requirementId: undefined },
{ id: 'tc-3', requirementId: 'req-1' },
{ id: 'tc-4', requirementId: undefined },
];
const ordered = orderByRequirementForGrouping(cases, ['req-1', 'req-2'], (testCase: GroupableItem) => testCase.requirementId);
assert.deepEqual(ordered.map((testCase: GroupableItem) => testCase.id), ['tc-3', 'tc-1', 'tc-2', 'tc-4']);
});