Stop propagating full workflow in components (#13900)
Workflow, workflow version and workflow runs should not be passed through props or context. These are set in recoil component states and that's where all hooks should look for these. This PR stop propagating workflow with version through all components.
This commit is contained in:
+7
-19
@@ -1,9 +1,6 @@
|
||||
import { act, renderHook } from '@testing-library/react';
|
||||
import { type WorkflowTrigger } from '@/workflow/types/Workflow';
|
||||
import { useUpdateWorkflowVersionTrigger } from '@/workflow/workflow-trigger/hooks/useUpdateWorkflowVersionTrigger';
|
||||
import {
|
||||
type WorkflowTrigger,
|
||||
type WorkflowWithCurrentVersion,
|
||||
} from '@/workflow/types/Workflow';
|
||||
import { act, renderHook } from '@testing-library/react';
|
||||
|
||||
const mockUpdateOneRecord = jest.fn();
|
||||
const mockGetUpdatableWorkflowVersion = jest.fn();
|
||||
@@ -15,8 +12,8 @@ jest.mock('@/object-record/hooks/useUpdateOneRecord', () => ({
|
||||
})),
|
||||
}));
|
||||
|
||||
jest.mock('@/workflow/hooks/useGetUpdatableWorkflowVersion', () => ({
|
||||
useGetUpdatableWorkflowVersion: jest.fn(() => ({
|
||||
jest.mock('@/workflow/hooks/useGetUpdatableWorkflowVersionOrThrow', () => ({
|
||||
useGetUpdatableWorkflowVersionOrThrow: jest.fn(() => ({
|
||||
getUpdatableWorkflowVersion: mockGetUpdatableWorkflowVersion,
|
||||
})),
|
||||
}));
|
||||
@@ -28,11 +25,6 @@ jest.mock('@/workflow/hooks/useComputeStepOutputSchema', () => ({
|
||||
}));
|
||||
|
||||
describe('useUpdateWorkflowVersionTrigger', () => {
|
||||
const mockWorkflow = {
|
||||
id: 'workflow-id',
|
||||
currentVersion: { id: 'version-id' },
|
||||
} as WorkflowWithCurrentVersion;
|
||||
|
||||
const trigger: WorkflowTrigger = {
|
||||
name: 'Company created',
|
||||
type: 'DATABASE_EVENT',
|
||||
@@ -53,15 +45,13 @@ describe('useUpdateWorkflowVersionTrigger', () => {
|
||||
data: { computeStepOutputSchema: { field1: 'string' } },
|
||||
});
|
||||
|
||||
const { result } = renderHook(() =>
|
||||
useUpdateWorkflowVersionTrigger({ workflow: mockWorkflow }),
|
||||
);
|
||||
const { result } = renderHook(() => useUpdateWorkflowVersionTrigger());
|
||||
|
||||
await act(async () => {
|
||||
await result.current.updateTrigger(trigger);
|
||||
});
|
||||
|
||||
expect(mockGetUpdatableWorkflowVersion).toHaveBeenCalledWith(mockWorkflow);
|
||||
expect(mockGetUpdatableWorkflowVersion).toHaveBeenCalled();
|
||||
expect(mockComputeStepOutputSchema).toHaveBeenCalledWith({ step: trigger });
|
||||
expect(mockUpdateOneRecord).toHaveBeenCalledWith({
|
||||
idToUpdate: 'version-id',
|
||||
@@ -77,9 +67,7 @@ describe('useUpdateWorkflowVersionTrigger', () => {
|
||||
it('skips output schema computation when disabled', async () => {
|
||||
mockGetUpdatableWorkflowVersion.mockResolvedValue('version-id');
|
||||
|
||||
const { result } = renderHook(() =>
|
||||
useUpdateWorkflowVersionTrigger({ workflow: mockWorkflow }),
|
||||
);
|
||||
const { result } = renderHook(() => useUpdateWorkflowVersionTrigger());
|
||||
|
||||
await act(async () => {
|
||||
await result.current.updateTrigger(trigger, {
|
||||
|
||||
+5
-18
@@ -1,25 +1,20 @@
|
||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
|
||||
import { useComputeStepOutputSchema } from '@/workflow/hooks/useComputeStepOutputSchema';
|
||||
import { useGetUpdatableWorkflowVersion } from '@/workflow/hooks/useGetUpdatableWorkflowVersion';
|
||||
import { useGetUpdatableWorkflowVersionOrThrow } from '@/workflow/hooks/useGetUpdatableWorkflowVersionOrThrow';
|
||||
import {
|
||||
type WorkflowTrigger,
|
||||
type WorkflowVersion,
|
||||
type WorkflowWithCurrentVersion,
|
||||
} from '@/workflow/types/Workflow';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
export const useUpdateWorkflowVersionTrigger = ({
|
||||
workflow,
|
||||
}: {
|
||||
workflow: WorkflowWithCurrentVersion;
|
||||
}) => {
|
||||
export const useUpdateWorkflowVersionTrigger = () => {
|
||||
const { updateOneRecord: updateOneWorkflowVersion } =
|
||||
useUpdateOneRecord<WorkflowVersion>({
|
||||
objectNameSingular: CoreObjectNameSingular.WorkflowVersion,
|
||||
});
|
||||
|
||||
const { getUpdatableWorkflowVersion } = useGetUpdatableWorkflowVersion();
|
||||
const { getUpdatableWorkflowVersion } =
|
||||
useGetUpdatableWorkflowVersionOrThrow();
|
||||
|
||||
const { computeStepOutputSchema } = useComputeStepOutputSchema();
|
||||
|
||||
@@ -27,11 +22,7 @@ export const useUpdateWorkflowVersionTrigger = ({
|
||||
updatedTrigger: WorkflowTrigger,
|
||||
options: { computeOutputSchema: boolean } = { computeOutputSchema: true },
|
||||
) => {
|
||||
if (!isDefined(workflow.currentVersion)) {
|
||||
throw new Error('Cannot find current workflow version');
|
||||
}
|
||||
|
||||
const workflowVersionId = await getUpdatableWorkflowVersion(workflow);
|
||||
const workflowVersionId = await getUpdatableWorkflowVersion();
|
||||
|
||||
if (options.computeOutputSchema) {
|
||||
const outputSchema = (
|
||||
@@ -46,10 +37,6 @@ export const useUpdateWorkflowVersionTrigger = ({
|
||||
};
|
||||
}
|
||||
|
||||
if (!isDefined(workflowVersionId)) {
|
||||
throw new Error('Workflow version not found');
|
||||
}
|
||||
|
||||
await updateOneWorkflowVersion({
|
||||
idToUpdate: workflowVersionId,
|
||||
updateOneRecordInput: {
|
||||
|
||||
Reference in New Issue
Block a user