Fix workflow run ouput format (#10302)
- Adapt the frontend to use the new output format
This commit is contained in:
committed by
GitHub
parent
ad9af65898
commit
77caf36d90
@ -188,8 +188,6 @@ export type WorkflowVersion = {
|
||||
|
||||
type StepRunOutput = {
|
||||
id: string;
|
||||
name: string;
|
||||
type: string;
|
||||
outputs: {
|
||||
attemptCount: number;
|
||||
result: object | undefined;
|
||||
@ -197,8 +195,14 @@ type StepRunOutput = {
|
||||
}[];
|
||||
};
|
||||
|
||||
export type WorkflowRunOutputStepsOutput = Record<string, StepRunOutput>;
|
||||
|
||||
export type WorkflowRunOutput = {
|
||||
steps: Record<string, StepRunOutput>;
|
||||
flow: {
|
||||
trigger: WorkflowTrigger;
|
||||
steps: WorkflowAction[];
|
||||
};
|
||||
stepsOutput?: WorkflowRunOutputStepsOutput;
|
||||
error?: string;
|
||||
};
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
import { useWorkflowVersion } from '@/workflow/hooks/useWorkflowVersion';
|
||||
import { workflowVersionIdState } from '@/workflow/states/workflowVersionIdState';
|
||||
import { WorkflowRun } from '@/workflow/types/Workflow';
|
||||
import { workflowDiagramState } from '@/workflow/workflow-diagram/states/workflowDiagramState';
|
||||
@ -14,8 +13,6 @@ export const WorkflowRunVisualizerEffect = ({
|
||||
workflowVersionId: string;
|
||||
workflowRun: WorkflowRun;
|
||||
}) => {
|
||||
const workflowVersion = useWorkflowVersion(workflowVersionId);
|
||||
|
||||
const setWorkflowVersionId = useSetRecoilState(workflowVersionIdState);
|
||||
const setWorkflowDiagram = useSetRecoilState(workflowDiagramState);
|
||||
|
||||
@ -24,26 +21,20 @@ export const WorkflowRunVisualizerEffect = ({
|
||||
}, [setWorkflowVersionId, workflowVersionId]);
|
||||
|
||||
useEffect(() => {
|
||||
if (
|
||||
!(
|
||||
isDefined(workflowVersion) &&
|
||||
isDefined(workflowVersion.trigger) &&
|
||||
isDefined(workflowVersion.steps)
|
||||
)
|
||||
) {
|
||||
if (!isDefined(workflowRun.output)) {
|
||||
setWorkflowDiagram(undefined);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const nextWorkflowDiagram = generateWorkflowRunDiagram({
|
||||
trigger: workflowVersion.trigger,
|
||||
steps: workflowVersion.steps,
|
||||
output: workflowRun.output,
|
||||
trigger: workflowRun.output.flow.trigger,
|
||||
steps: workflowRun.output.flow.steps,
|
||||
stepsOutput: workflowRun.output.stepsOutput,
|
||||
});
|
||||
|
||||
setWorkflowDiagram(nextWorkflowDiagram);
|
||||
}, [setWorkflowDiagram, workflowRun.output, workflowVersion]);
|
||||
}, [setWorkflowDiagram, workflowRun.output]);
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import {
|
||||
WorkflowRunOutput,
|
||||
WorkflowRunOutputStepsOutput,
|
||||
WorkflowStep,
|
||||
WorkflowTrigger,
|
||||
} from '@/workflow/types/Workflow';
|
||||
@ -76,18 +76,14 @@ describe('generateWorkflowRunDiagram', () => {
|
||||
},
|
||||
},
|
||||
];
|
||||
const output: WorkflowRunOutput = {
|
||||
steps: {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
name: 'Step 1',
|
||||
outputs: [],
|
||||
type: 'CODE',
|
||||
},
|
||||
const stepsOutput: WorkflowRunOutputStepsOutput = {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
outputs: [],
|
||||
},
|
||||
};
|
||||
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, output });
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, stepsOutput });
|
||||
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
{
|
||||
@ -249,24 +245,20 @@ describe('generateWorkflowRunDiagram', () => {
|
||||
},
|
||||
},
|
||||
];
|
||||
const output: WorkflowRunOutput = {
|
||||
steps: {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
name: 'Step 1',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: undefined,
|
||||
error: '',
|
||||
},
|
||||
],
|
||||
type: 'CODE',
|
||||
},
|
||||
const stepsOutput: WorkflowRunOutputStepsOutput = {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: undefined,
|
||||
error: '',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, output });
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, stepsOutput });
|
||||
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
{
|
||||
@ -428,48 +420,40 @@ describe('generateWorkflowRunDiagram', () => {
|
||||
},
|
||||
},
|
||||
];
|
||||
const output: WorkflowRunOutput = {
|
||||
steps: {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
name: 'Step 1',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
type: 'CODE',
|
||||
},
|
||||
step2: {
|
||||
id: 'step2',
|
||||
name: 'Step 2',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
type: 'CODE',
|
||||
},
|
||||
step3: {
|
||||
id: 'step3',
|
||||
name: 'Step 3',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
type: 'CODE',
|
||||
},
|
||||
const stepsOutput: WorkflowRunOutputStepsOutput = {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
},
|
||||
step2: {
|
||||
id: 'step2',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
},
|
||||
step3: {
|
||||
id: 'step3',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, output });
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, stepsOutput });
|
||||
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
{
|
||||
@ -633,9 +617,9 @@ describe('generateWorkflowRunDiagram', () => {
|
||||
},
|
||||
},
|
||||
];
|
||||
const output = null;
|
||||
const stepsOutput = undefined;
|
||||
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, output });
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, stepsOutput });
|
||||
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
{
|
||||
@ -815,24 +799,20 @@ describe('generateWorkflowRunDiagram', () => {
|
||||
},
|
||||
},
|
||||
];
|
||||
const output: WorkflowRunOutput = {
|
||||
steps: {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
name: 'Step 1',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
type: 'CODE',
|
||||
},
|
||||
const stepsOutput: WorkflowRunOutputStepsOutput = {
|
||||
step1: {
|
||||
id: 'step1',
|
||||
outputs: [
|
||||
{
|
||||
attemptCount: 1,
|
||||
result: {},
|
||||
error: undefined,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, output });
|
||||
const result = generateWorkflowRunDiagram({ trigger, steps, stepsOutput });
|
||||
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
{
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import {
|
||||
WorkflowRunOutput,
|
||||
WorkflowRunOutputStepsOutput,
|
||||
WorkflowStep,
|
||||
WorkflowTrigger,
|
||||
} from '@/workflow/types/Workflow';
|
||||
@ -21,11 +21,11 @@ import { v4 } from 'uuid';
|
||||
export const generateWorkflowRunDiagram = ({
|
||||
trigger,
|
||||
steps,
|
||||
output,
|
||||
stepsOutput,
|
||||
}: {
|
||||
trigger: WorkflowTrigger;
|
||||
steps: Array<WorkflowStep>;
|
||||
output: WorkflowRunOutput | null;
|
||||
stepsOutput: WorkflowRunOutputStepsOutput | undefined;
|
||||
}): WorkflowRunDiagram => {
|
||||
const triggerBase = getWorkflowDiagramTriggerNode({ trigger });
|
||||
|
||||
@ -78,7 +78,7 @@ export const generateWorkflowRunDiagram = ({
|
||||
});
|
||||
}
|
||||
|
||||
const runResult = output?.steps[nodeId];
|
||||
const runResult = stepsOutput?.[nodeId];
|
||||
|
||||
let runStatus: WorkflowDiagramRunStatus;
|
||||
if (skippedExecution) {
|
||||
|
||||
Reference in New Issue
Block a user