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
@ -231,7 +231,7 @@ export class WorkflowVisualizerPage {
|
||||
|
||||
async closeSidePanel() {
|
||||
const closeButton = this.#page.getByTestId(
|
||||
'page-header-close-command-menu-button',
|
||||
'page-header-command-menu-button',
|
||||
);
|
||||
|
||||
await closeButton.click();
|
||||
|
||||
@ -194,20 +194,20 @@ export const useRecordShowContainerTabs = (
|
||||
ifRelationsMissing: [],
|
||||
},
|
||||
},
|
||||
// workflowRunFlow: {
|
||||
// title: 'Flow',
|
||||
// position: 0,
|
||||
// Icon: IconSettings,
|
||||
// cards: [{ type: CardType.WorkflowRunCard }],
|
||||
// hide: {
|
||||
// ifMobile: false,
|
||||
// ifDesktop: false,
|
||||
// ifInRightDrawer: false,
|
||||
// ifFeaturesDisabled: [FeatureFlagKey.IsWorkflowEnabled],
|
||||
// ifRequiredObjectsInactive: [],
|
||||
// ifRelationsMissing: [],
|
||||
// },
|
||||
// },
|
||||
workflowRunFlow: {
|
||||
title: 'Flow',
|
||||
position: 0,
|
||||
Icon: IconSettings,
|
||||
cards: [{ type: CardType.WorkflowRunCard }],
|
||||
hide: {
|
||||
ifMobile: false,
|
||||
ifDesktop: false,
|
||||
ifInRightDrawer: false,
|
||||
ifFeaturesDisabled: [FeatureFlagKey.IsWorkflowEnabled],
|
||||
ifRequiredObjectsInactive: [],
|
||||
ifRelationsMissing: [],
|
||||
},
|
||||
},
|
||||
timeline: null,
|
||||
},
|
||||
},
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -46,7 +46,7 @@ export type WorkflowRunOutput = {
|
||||
trigger: WorkflowTrigger;
|
||||
steps: WorkflowAction[];
|
||||
};
|
||||
stepsOutput: Record<string, StepRunOutput>;
|
||||
stepsOutput?: Record<string, StepRunOutput>;
|
||||
error?: string;
|
||||
};
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ export class WorkflowExecutorWorkspaceService {
|
||||
};
|
||||
}
|
||||
|
||||
const stepOutput = workflowExecutorState.stepsOutput[step.id];
|
||||
const stepOutput = workflowExecutorState.stepsOutput?.[step.id];
|
||||
|
||||
const error =
|
||||
result.error?.errorMessage ??
|
||||
|
||||
Reference in New Issue
Block a user