feat(workspace): 增加工作活动日报引擎
This commit is contained in:
33
apps/web/lib/work-activity.test.ts
Normal file
33
apps/web/lib/work-activity.test.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
import type { WorkActivity } from './work-activity';
|
||||
import { mergeWorkActivities } from './work-activity';
|
||||
|
||||
function activity(id: string, summary: string): WorkActivity {
|
||||
return {
|
||||
id,
|
||||
actorId: '张三',
|
||||
date: '2026-06-26',
|
||||
occurredAt: `2026-06-26T0${id.length}:00:00.000Z`,
|
||||
sourceType: 'dev_task',
|
||||
sourceId: id,
|
||||
action: 'dev_task_started',
|
||||
category: 'progress',
|
||||
title: summary,
|
||||
summary,
|
||||
};
|
||||
}
|
||||
|
||||
test('mergeWorkActivities preserves remote records and appends local records', () => {
|
||||
const merged = mergeWorkActivities([activity('act-1', '远端记录')], [activity('act-2', '本地新增')]);
|
||||
|
||||
assert.deepEqual(merged.map((item) => item.id), ['act-1', 'act-2']);
|
||||
});
|
||||
|
||||
test('mergeWorkActivities lets newer local records replace the same id', () => {
|
||||
const merged = mergeWorkActivities([activity('act-1', '远端旧记录')], [activity('act-1', '本地新记录')]);
|
||||
|
||||
assert.equal(merged.length, 1);
|
||||
assert.equal(merged[0].summary, '本地新记录');
|
||||
});
|
||||
Reference in New Issue
Block a user