import { ServerlessFunctionExecutionResult } from '@/serverless-functions/components/ServerlessFunctionExecutionResult'; import { serverlessFunctionTestDataFamilyState } from '@/workflow/workflow-steps/workflow-actions/code-action/states/serverlessFunctionTestDataFamilyState'; import styled from '@emotion/styled'; import { useLingui } from '@lingui/react/macro'; import { useRecoilState } from 'recoil'; import { H2Title, IconPlayerPlay } from 'twenty-ui/display'; import { Button, CodeEditor, CoreEditorHeader } from 'twenty-ui/input'; import { Section } from 'twenty-ui/layout'; import { InputLabel } from '@/ui/input/components/InputLabel'; import { TextArea } from '@/ui/input/components/TextArea'; const StyledInputsContainer = styled.div` display: flex; flex-direction: column; gap: ${({ theme }) => theme.spacing(4)}; `; const StyledCodeEditorContainer = styled.div` display: flex; flex-direction: column; `; export const SettingsServerlessFunctionTestTab = ({ handleExecute, serverlessFunctionId, isTesting = false, }: { handleExecute: () => void; serverlessFunctionId: string; isTesting?: boolean; }) => { const { t } = useLingui(); const [serverlessFunctionTestData, setServerlessFunctionTestData] = useRecoilState(serverlessFunctionTestDataFamilyState(serverlessFunctionId)); const onChange = (newInput: string) => { setServerlessFunctionTestData((prev) => ({ ...prev, input: JSON.parse(newInput), })); }; const testLogsTextAreaId = `${serverlessFunctionId}-test-logs`; return (
, ]} /> 0 ? 200 : undefined } isTesting={isTesting} /> {serverlessFunctionTestData.output.logs.length > 0 && ( {t`Logs`}