修复画布任务列表完成展示

阻止画布生成完成快照自动展开生成器对话框
已完成任务按完成时间排序
恢复任务列表状态、时间和进度展示

(cherry picked from commit febe4811768b1bce73dbc37ca412b3834da2d699)
This commit is contained in:
2026-06-30 14:05:25 +08:00
parent c556d42d22
commit dbb651e1f4
5 changed files with 81 additions and 39 deletions
@@ -90,6 +90,15 @@ describe('ImageCanvasTaskSidebarView', () => {
}),
]
: [
createExternalTask({
jobId: 'older-done-task',
requestLabel: '较早完成',
requestPrompt: '较早完成任务',
status: 'completed',
startedAt: new Date(Date.now() - 9000).toISOString(),
completedAt: new Date(Date.now() - 8000).toISOString(),
updatedAt: new Date(Date.now() - 500).toISOString(),
}),
createExternalTask({
jobId: 'done-task',
requestLabel: '视频生成',
@@ -151,8 +160,14 @@ describe('ImageCanvasTaskSidebarView', () => {
const completedTab = screen.getByRole('tab', { name: /已完成/u });
fireEvent.click(completedTab);
expect(await screen.findByText('视频生成')).toBeTruthy();
const completedTitles = screen
.getAllByRole('button')
.map((button) => button.textContent ?? '')
.filter((text) => text.includes('视频生成') || text.includes('较早完成'));
expect(completedTitles[0]).toContain('视频生成');
expect(completedTitles[1]).toContain('较早完成');
expect(screen.getByText(/生成一段开场动画/u)).toBeTruthy();
expect(screen.queryByText(/完成于/u)).not.toBeNull();
expect(screen.queryAllByText(/完成于/u).length).toBeGreaterThan(0);
expect(screen.queryByText(/生成完成/u)).toBeNull();
fireEvent.wheel(screen.getByLabelText('画布任务列表'), { deltaY: 120 });
@@ -220,9 +235,11 @@ describe('ImageCanvasTaskSidebarView', () => {
/>,
);
expect(await screen.findByText('生成图片')).toBeTruthy();
expect(screen.getByText(/总进度 35% · 正在生成第 2\/4 段。/u)).toBeTruthy();
expect(await screen.findByText('图片画布生成图片')).toBeTruthy();
expect(screen.getByText(/发光猫咪主视觉/u)).toBeTruthy();
expect(screen.getByText(/35% · 正在生成第 2\/4 段。/u)).toBeTruthy();
expect(screen.getByText(/已用时 1分/u)).toBeTruthy();
expect(screen.queryByText(/总进度/u)).toBeNull();
expect(screen.queryByText(/不该显示的外部项目任务/u)).toBeNull();
await waitFor(() =>
expect(