perf(web): 优化大数据量页面切换与聚合性能
This commit is contained in:
@@ -2,7 +2,7 @@ import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
import type { DevTask } from './dev-task';
|
||||
import { canEditRequirement } from './linkage-engine';
|
||||
import { buildRequirementDevStatusMap, canEditRequirement } from './linkage-engine';
|
||||
import * as linkageEngine from './linkage-engine';
|
||||
|
||||
function task(patch: Partial<DevTask> = {}): DevTask {
|
||||
@@ -37,3 +37,19 @@ test('active or completed requirement development status cannot be closed', () =
|
||||
assert.equal(canCloseRequirement('req-1', [task({ status: 'testing' })]), false);
|
||||
assert.equal(canCloseRequirement('req-1', [task({ status: 'submitted' })]), false);
|
||||
});
|
||||
|
||||
test('buildRequirementDevStatusMap derives every requirement status in one pass', () => {
|
||||
const statusMap = buildRequirementDevStatusMap([
|
||||
task({ id: 'task-todo', requirementId: 'req-todo', status: 'todo' }),
|
||||
task({ id: 'task-active', requirementId: 'req-active', status: 'in_progress' }),
|
||||
task({ id: 'task-testing', requirementId: 'req-active', status: 'testing' }),
|
||||
task({ id: 'task-done-1', requirementId: 'req-done', status: 'submitted' }),
|
||||
task({ id: 'task-done-2', requirementId: 'req-done', status: 'submitted' }),
|
||||
task({ id: 'task-no-req', requirementId: '', status: 'submitted' }),
|
||||
]);
|
||||
|
||||
assert.equal(statusMap.get('req-todo'), 'todo');
|
||||
assert.equal(statusMap.get('req-active'), 'developing');
|
||||
assert.equal(statusMap.get('req-done'), 'completed');
|
||||
assert.equal(statusMap.has(''), false);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user