Add delete record action (#8908)
<img width="1272" alt="Capture d’écran 2024-12-05 à 18 04 19" src="https://github.com/user-attachments/assets/dcbcc761-2f6d-4b6d-9e10-0f5b25d12c39"> - Adding new action - Adding tests - Moving into action folder
This commit is contained in:
@ -1,79 +0,0 @@
|
||||
import {
|
||||
WorkflowCodeAction,
|
||||
WorkflowRecordCRUDAction,
|
||||
} from '@/workflow/types/Workflow';
|
||||
import { isWorkflowRecordCreateAction } from '../isWorkflowRecordCreateAction';
|
||||
|
||||
it('returns false when providing an action that is not Record Create', () => {
|
||||
const codeAction: WorkflowCodeAction = {
|
||||
type: 'CODE',
|
||||
id: '',
|
||||
name: '',
|
||||
settings: {
|
||||
errorHandlingOptions: {
|
||||
continueOnFailure: {
|
||||
value: false,
|
||||
},
|
||||
retryOnFailure: {
|
||||
value: false,
|
||||
},
|
||||
},
|
||||
input: {
|
||||
serverlessFunctionId: '',
|
||||
serverlessFunctionVersion: '',
|
||||
serverlessFunctionInput: {},
|
||||
},
|
||||
outputSchema: {},
|
||||
},
|
||||
valid: true,
|
||||
};
|
||||
|
||||
expect(isWorkflowRecordCreateAction(codeAction)).toBe(false);
|
||||
});
|
||||
|
||||
it('returns false for Record Update', () => {
|
||||
const codeAction: WorkflowRecordCRUDAction = {
|
||||
type: 'RECORD_CRUD',
|
||||
id: '',
|
||||
name: '',
|
||||
settings: {
|
||||
errorHandlingOptions: {
|
||||
continueOnFailure: { value: false },
|
||||
retryOnFailure: { value: false },
|
||||
},
|
||||
input: {
|
||||
type: 'UPDATE',
|
||||
objectName: '',
|
||||
objectRecord: {},
|
||||
objectRecordId: '',
|
||||
},
|
||||
outputSchema: {},
|
||||
},
|
||||
valid: true,
|
||||
};
|
||||
|
||||
expect(isWorkflowRecordCreateAction(codeAction)).toBe(false);
|
||||
});
|
||||
|
||||
it('returns true for Record Create', () => {
|
||||
const codeAction: WorkflowRecordCRUDAction = {
|
||||
type: 'RECORD_CRUD',
|
||||
id: '',
|
||||
name: '',
|
||||
settings: {
|
||||
errorHandlingOptions: {
|
||||
continueOnFailure: { value: false },
|
||||
retryOnFailure: { value: false },
|
||||
},
|
||||
input: {
|
||||
type: 'CREATE',
|
||||
objectName: '',
|
||||
objectRecord: {},
|
||||
},
|
||||
outputSchema: {},
|
||||
},
|
||||
valid: true,
|
||||
};
|
||||
|
||||
expect(isWorkflowRecordCreateAction(codeAction)).toBe(true);
|
||||
});
|
||||
@ -1,21 +0,0 @@
|
||||
import { mergeDefaultFunctionInputAndFunctionInput } from '@/workflow/utils/mergeDefaultFunctionInputAndFunctionInput';
|
||||
|
||||
describe('mergeDefaultFunctionInputAndFunctionInput', () => {
|
||||
it('should merge properly', () => {
|
||||
const defaultFunctionInput = {
|
||||
params: { a: null, b: null, c: { cc: null } },
|
||||
};
|
||||
const functionInput = {
|
||||
params: { a: 'a', c: 'c' },
|
||||
};
|
||||
const expectedResult = {
|
||||
params: { a: 'a', b: null, c: { cc: null } },
|
||||
};
|
||||
expect(
|
||||
mergeDefaultFunctionInputAndFunctionInput({
|
||||
defaultFunctionInput,
|
||||
functionInput,
|
||||
}),
|
||||
).toEqual(expectedResult);
|
||||
});
|
||||
});
|
||||
@ -1,12 +0,0 @@
|
||||
import {
|
||||
WorkflowAction,
|
||||
WorkflowRecordCreateAction,
|
||||
} from '@/workflow/types/Workflow';
|
||||
|
||||
export const isWorkflowRecordCreateAction = (
|
||||
action: WorkflowAction,
|
||||
): action is WorkflowRecordCreateAction => {
|
||||
return (
|
||||
action.type === 'RECORD_CRUD' && action.settings.input.type === 'CREATE'
|
||||
);
|
||||
};
|
||||
@ -1,12 +0,0 @@
|
||||
import {
|
||||
WorkflowAction,
|
||||
WorkflowRecordUpdateAction,
|
||||
} from '@/workflow/types/Workflow';
|
||||
|
||||
export const isWorkflowRecordUpdateAction = (
|
||||
action: WorkflowAction,
|
||||
): action is WorkflowRecordUpdateAction => {
|
||||
return (
|
||||
action.type === 'RECORD_CRUD' && action.settings.input.type === 'UPDATE'
|
||||
);
|
||||
};
|
||||
@ -1,32 +0,0 @@
|
||||
import { FunctionInput } from '@/workflow/types/FunctionInput';
|
||||
|
||||
export const mergeDefaultFunctionInputAndFunctionInput = ({
|
||||
defaultFunctionInput,
|
||||
functionInput,
|
||||
}: {
|
||||
defaultFunctionInput: FunctionInput;
|
||||
functionInput: FunctionInput;
|
||||
}): FunctionInput => {
|
||||
const result: FunctionInput = {};
|
||||
|
||||
for (const key of Object.keys(defaultFunctionInput)) {
|
||||
if (!(key in functionInput)) {
|
||||
result[key] = defaultFunctionInput[key];
|
||||
} else {
|
||||
if (
|
||||
defaultFunctionInput[key] !== null &&
|
||||
typeof defaultFunctionInput[key] === 'object'
|
||||
) {
|
||||
result[key] = mergeDefaultFunctionInputAndFunctionInput({
|
||||
defaultFunctionInput: defaultFunctionInput[key],
|
||||
functionInput:
|
||||
typeof functionInput[key] === 'object' ? functionInput[key] : {},
|
||||
});
|
||||
} else {
|
||||
result[key] = functionInput[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
Reference in New Issue
Block a user