Archived
工作成果里摆着别单的资料:「这一单产出的」认本单碰过的行
放行存档(archiveAssetFiles)与在办列单(assetFilesOf)取行都用 taskView(where:{}) ——
那是「正式版全表 + 本单草稿」的合并视图,而资料常落在主数据上,整表里躺着别单放行过的行。
抽 assetRowsOf 两处同用,touched 为必填入参;e2e 补份数断言。
顺手清两笔:wake.test.ts 的 as unknown as(lint 红)、wake 契约的 api-report 快照(api:check 红)。
This commit is contained in:
+13
-3
@@ -739,20 +739,30 @@ async function assertAssetFiles(taskId, spec) {
|
||||
}
|
||||
seen.add(format);
|
||||
}
|
||||
return { ok: true, formats: seen, note: `${rows.length} 份资料全部取得回、渲得出(格式:${[...seen].join(' / ')})` };
|
||||
return { ok: true, formats: seen, count: rows.length, note: `${rows.length} 份资料全部取得回、渲得出(格式:${[...seen].join(' / ')})` };
|
||||
}
|
||||
|
||||
/**
|
||||
* 收工之后再看一眼:那几份资料**存档了没有、点得开吗**。
|
||||
* 查的是工作台任务详情里那一摞(`assetFiles`,工作成果那一屏摆的就是它),
|
||||
* 逐份按同一条路取回来 —— 与人在界面上点它是同一个接口。
|
||||
*
|
||||
* **份数也得对上**(2026-08-25 柴浩:「工作成果怎么有 4 个资料,这单只会产出一个」)——
|
||||
* 资料落在主数据上,整表里躺着历次跑出来的资产;从前存档拿的是整表,
|
||||
* 于是这一摞里混着别单的成果。多一份也是错:签字的人会以为那是他交出去的东西。
|
||||
*/
|
||||
async function assertArchived(taskId) {
|
||||
async function assertArchived(taskId, expected) {
|
||||
const { body } = await api(`/api/desk/tasks/${taskId}`);
|
||||
const files = body.assetFiles ?? [];
|
||||
if (files.length === 0) return { ok: false, note: '工作成果里一份资料都没有 —— 放行时没存档' };
|
||||
const live = files.filter((f) => !f.archived);
|
||||
if (live.length > 0) return { ok: false, note: `${live.length} 份还标着「在办中」—— 放行那一刻没冻住` };
|
||||
if (expected !== undefined && files.length !== expected) {
|
||||
return {
|
||||
ok: false,
|
||||
note: `工作成果里 ${files.length} 份,而这一单只产出 ${expected} 份 —— 多出来的是别单的成果(${files.map((f) => f.title).join(' / ')})`,
|
||||
};
|
||||
}
|
||||
for (const f of files) {
|
||||
const url = `/api/desk/tasks/${taskId}/file?address=${encodeURIComponent(f.address)}&key=${encodeURIComponent(f.key)}`;
|
||||
let got;
|
||||
@@ -1057,7 +1067,7 @@ async function runCase(suite, kase) {
|
||||
* 资料落在主数据上,而试跑单放行时主数据不落正式表:不存档的话这一刻全是 404
|
||||
* (这正是 2026-08-23 之前的实情)。所以这条断言查的是**存档**,不是台账。
|
||||
*/
|
||||
const archived = await assertArchived(taskId);
|
||||
const archived = await assertArchived(taskId, fileCheck?.count);
|
||||
console.log(` 资料存档:${archived.note}`);
|
||||
if (!archived.ok) ok = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user