feat(data-process): 完善后台生成与失败重试
This commit is contained in:
@@ -21,7 +21,12 @@ assert.doesNotMatch(source, /activeTab|filteredDataList/, '不应保留状态切
|
||||
assert.doesNotMatch(source, /全部任务|处理中|已完成/, '不应保留状态切换按钮文案')
|
||||
assert.doesNotMatch(source, /capsule-tabs|capsule-tab-item/, '不应保留状态切换专用样式')
|
||||
assert.ok(source.includes("getDataProcessTasks({ page: 1, page_size: 200"), '列表没有通过真实 API 分页加载任务')
|
||||
assert.doesNotMatch(source, /usePolling|refreshActiveTasks|startPolling/, '列表不应自动轮询刷新')
|
||||
assert.match(source, /usePolling\([\s\S]*?\(\) => loadData\(true\)[\s\S]*?3000/, '列表没有静默轮询运行中任务')
|
||||
assert.match(
|
||||
source,
|
||||
/item\.status === 'running'[\s\S]*?item\.preview_status === 'running'[\s\S]*?item\.preview_status === 'queued'[\s\S]*?startPolling\(\)[\s\S]*?stopPolling\(\)/,
|
||||
'列表轮询没有同时覆盖后台生成与后台切分',
|
||||
)
|
||||
assert.doesNotMatch(source, /toolbar-extra|refreshData|refreshing|fa-refresh/, '列表不应显示手动刷新按钮')
|
||||
assert.ok(source.includes('ElMessageBox.confirm('), '删除任务前缺少二次确认')
|
||||
assert.ok(source.includes('await deleteDataProcessTask(row.id)'), '删除操作没有调用真实 API')
|
||||
@@ -37,7 +42,10 @@ assert.match(source, /dataProcessDisplayStatus\(row as DataProcessTask\)\.type[\
|
||||
|
||||
const statusCases = [
|
||||
[{ status: 'pending' }, { label: '待生成', type: 'info' }],
|
||||
[{ status: 'pending', preview_status: 'queued' }, { label: '切分中', type: 'primary' }],
|
||||
[{ status: 'pending', preview_status: 'running' }, { label: '切分中', type: 'primary' }],
|
||||
[{ status: 'running' }, { label: '生成中', type: 'primary' }],
|
||||
[{ status: 'completed', results_confirmed: false }, { label: '待确认', type: 'warning' }],
|
||||
[{ status: 'completed' }, { label: '已生成', type: 'warning' }],
|
||||
[{ status: 'completed', output_datasets: [{ id: 'old-train' }] }, { label: '已生成', type: 'warning' }],
|
||||
[{ status: 'completed', output_dataset_id: 'current-train' }, { label: '已发布', type: 'success' }],
|
||||
@@ -48,6 +56,9 @@ for (const [task, expected] of statusCases) {
|
||||
assert.deepEqual(dataProcessDisplayStatus(task), expected, `任务六态映射错误:${task.status}`)
|
||||
}
|
||||
|
||||
assert.match(source, /task\.status === 'completed' && task\.results_confirmed !== false[\s\S]*?'data-process-detail'[\s\S]*?'data-process-workflow'/, '详情入口没有区分已确认详情与未完成工作流')
|
||||
assert.doesNotMatch(source, /stopDataProcess|\/stop\b|停止生成|停止任务/, '列表不应暴露删除以外的任务终止入口')
|
||||
|
||||
assert.match(apiSource, /export (?:async )?function getDataProcessTasks/, 'API 模块缺少任务列表方法')
|
||||
assert.match(apiSource, /export const deleteDataProcessTask/, 'API 模块缺少任务删除方法')
|
||||
assert.ok(apiSource.includes("get<DataProcessPage<DataProcessTask>>('/data-process', params)"), '任务列表 API 路径或分页契约不正确')
|
||||
|
||||
Reference in New Issue
Block a user