fix(web): snippet run logs

This commit is contained in:
JzoNg 2026-04-29 21:25:50 +08:00
parent 55eb894d8e
commit 00319f0e43
5 changed files with 59 additions and 1 deletions

View File

@ -316,5 +316,16 @@ describe('SnippetMain', () => {
expect(capturedHooksStore?.handleStartWorkflowRun).toBe(mockHandleStartWorkflowRun)
expect(capturedHooksStore?.handleWorkflowStartRunInWorkflow).toBe(mockHandleWorkflowStartRunInWorkflow)
})
it('should pass snippet workflow run detail urls to WorkflowWithInnerContext', () => {
renderSnippetMain()
const getWorkflowRunAndTraceUrl = capturedHooksStore?.getWorkflowRunAndTraceUrl as ((runId?: string) => { runUrl: string, traceUrl: string }) | undefined
expect(getWorkflowRunAndTraceUrl?.('run-1')).toEqual({
runUrl: '/snippets/snippet-1/workflow-runs/run-1',
traceUrl: '/snippets/snippet-1/workflow-runs/run-1/node-executions',
})
})
})
})

View File

@ -13,6 +13,7 @@ import { useAvailableNodesMetaData } from '@/app/components/workflow-app/hooks'
import { useSetWorkflowVarsWithValue } from '@/app/components/workflow/hooks/use-fetch-workflow-inspect-vars'
import { BlockEnum } from '@/app/components/workflow/types'
import { useConfigsMap } from '../hooks/use-configs-map'
import { useGetRunAndTraceUrl } from '../hooks/use-get-run-and-trace-url'
import { useInspectVarsCrud } from '../hooks/use-inspect-vars-crud'
import { useNodesSyncDraft } from '../hooks/use-nodes-sync-draft'
import { useSnippetRefreshDraft } from '../hooks/use-snippet-refresh-draft'
@ -179,6 +180,7 @@ const SnippetMain = ({
handleRun,
inputFields: fields,
})
const { getWorkflowRunAndTraceUrl } = useGetRunAndTraceUrl(snippetId)
useEffect(() => {
reset()
@ -200,6 +202,7 @@ const SnippetMain = ({
handleStopRun,
handleStartWorkflowRun,
handleWorkflowStartRunInWorkflow,
getWorkflowRunAndTraceUrl,
availableNodesMetaData,
fetchInspectVars,
hasNodeInspectVars,
@ -237,6 +240,7 @@ const SnippetMain = ({
handleStartWorkflowRun,
handleStopRun,
handleWorkflowStartRunInWorkflow,
getWorkflowRunAndTraceUrl,
hasNodeInspectVars,
hasSetInspectVar,
invalidateConversationVarValues,

View File

@ -263,7 +263,7 @@ const SnippetRunPanel = ({
elapsed_time={workflowRunningData.result?.elapsed_time}
total_tokens={workflowRunningData.result?.total_tokens}
created_at={workflowRunningData.result?.created_at}
created_by={workflowRunningData.result?.created_by}
created_by={(workflowRunningData.result?.created_by as unknown as { name: string })?.name}
steps={workflowRunningData.result?.total_steps}
exceptionCounts={workflowRunningData.result?.exceptions_count}
/>

View File

@ -0,0 +1,22 @@
import { renderHook } from '@testing-library/react'
import { useGetRunAndTraceUrl } from '../use-get-run-and-trace-url'
describe('useGetRunAndTraceUrl', () => {
it('should build snippet workflow run and trace urls from the snippet id', () => {
const { result } = renderHook(() => useGetRunAndTraceUrl('snippet-1'))
expect(result.current.getWorkflowRunAndTraceUrl('run-1')).toEqual({
runUrl: '/snippets/snippet-1/workflow-runs/run-1',
traceUrl: '/snippets/snippet-1/workflow-runs/run-1/node-executions',
})
})
it('should return empty urls when no run id is provided', () => {
const { result } = renderHook(() => useGetRunAndTraceUrl('snippet-1'))
expect(result.current.getWorkflowRunAndTraceUrl()).toEqual({
runUrl: '',
traceUrl: '',
})
})
})

View File

@ -0,0 +1,21 @@
import { useCallback } from 'react'
export const useGetRunAndTraceUrl = (snippetId: string) => {
const getWorkflowRunAndTraceUrl = useCallback((runId?: string) => {
if (!runId) {
return {
runUrl: '',
traceUrl: '',
}
}
return {
runUrl: `/snippets/${snippetId}/workflow-runs/${runId}`,
traceUrl: `/snippets/${snippetId}/workflow-runs/${runId}/node-executions`,
}
}, [snippetId])
return {
getWorkflowRunAndTraceUrl,
}
}