fix(web): snippet restore

This commit is contained in:
JzoNg
2026-05-27 21:06:36 +08:00
parent a3dfd670b0
commit 83cd1a8d7a
2 changed files with 35 additions and 0 deletions

View File

@ -357,6 +357,39 @@ describe('Header layout components', () => {
expect(mockEmitRestoreComplete).not.toHaveBeenCalled()
expect(mockEmitWorkflowUpdate).not.toHaveBeenCalled()
})
it('should restore snippet versions through snippet routes without emitting collaboration events', async () => {
const currentVersion = createCurrentVersion()
renderWorkflowComponent(
<HeaderInRestoring />,
{
initialStoreState: {
isRestoring: true,
showWorkflowVersionHistoryPanel: true,
backupDraft: createBackupDraft(),
currentVersion,
},
hooksStoreProps: {
configsMap: {
flowType: FlowType.snippet,
flowId: 'snippet-1',
fileSettings: {},
},
},
},
)
fireEvent.click(screen.getByRole('button', { name: 'workflow.common.restore' }))
await waitFor(() => {
expect(mockRestoreWorkflow).toHaveBeenCalledWith('/snippets/snippet-1/workflows/version-1/restore')
expect(mockHandleRefreshWorkflowDraft).toHaveBeenCalledTimes(1)
})
expect(mockEmitRestoreIntent).not.toHaveBeenCalled()
expect(mockEmitRestoreComplete).not.toHaveBeenCalled()
expect(mockEmitWorkflowUpdate).not.toHaveBeenCalled()
})
})
describe('HeaderInHistory', () => {

View File

@ -62,6 +62,8 @@ const HeaderInRestoring = ({
return ''
if (configsMap.flowType === FlowType.ragPipeline)
return `/rag/pipelines/${configsMap.flowId}/workflows/${versionId}/restore`
if (configsMap.flowType === FlowType.snippet)
return `/snippets/${configsMap.flowId}/workflows/${versionId}/restore`
return `/apps/${configsMap.flowId}/workflows/${versionId}/restore`
}, [configsMap?.flowId, configsMap?.flowType])