diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/__stories__/WorkflowEditActionFindRecords.stories.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/__stories__/WorkflowEditActionFindRecords.stories.tsx index bb0e9220a4..d334aec124 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/__stories__/WorkflowEditActionFindRecords.stories.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/__stories__/WorkflowEditActionFindRecords.stories.tsx @@ -1,7 +1,7 @@ import { type WorkflowFindRecordsAction } from '@/workflow/types/Workflow'; import { WorkflowEditActionFindRecords } from '@/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords'; import { type Meta, type StoryObj } from '@storybook/react-vite'; -import { expect, fn, userEvent, within } from 'storybook/test'; +import { expect, fn, screen, userEvent, waitFor, within } from 'storybook/test'; import { ComponentDecorator, RouterDecorator } from 'twenty-ui/testing'; import { ObjectMetadataItemsDecorator } from '~/testing/decorators/ObjectMetadataItemsDecorator'; import { SnackBarDecorator } from '~/testing/decorators/SnackBarDecorator'; @@ -65,6 +65,58 @@ export const Default: Story = { }, }; +const onActionUpdateMock = fn(); + +export const KeepsLimitAndOffsetWhenObjectChanges: Story = { + args: { + action: { + ...DEFAULT_ACTION, + settings: { + ...DEFAULT_ACTION.settings, + input: { + objectName: 'person', + limit: 100, + offset: 20, + }, + }, + }, + actionOptions: { + onActionUpdate: onActionUpdateMock, + }, + }, + play: async ({ canvasElement }) => { + onActionUpdateMock.mockClear(); + + const canvas = within(canvasElement); + + await userEvent.click(await canvas.findByText('People')); + + await userEvent.type( + await screen.findByPlaceholderText('Search'), + 'Companies', + ); + + await userEvent.click(await screen.findByText('Companies')); + + await waitFor( + () => { + expect(onActionUpdateMock).toHaveBeenCalledWith( + expect.objectContaining({ + settings: expect.objectContaining({ + input: expect.objectContaining({ + objectName: 'company', + limit: 100, + offset: 20, + }), + }), + }), + ); + }, + { timeout: 3000 }, + ); + }, +}; + export const DisabledWithEmptyValues: Story = { args: { actionOptions: { diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx index 1586bece65..c476e4d995 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/find-records-action/components/WorkflowEditActionFindRecords.tsx @@ -178,8 +178,8 @@ export const WorkflowEditActionFindRecords = ({ const newFormData: FindRecordsFormData = { objectNameSingular: value, - limit: 1, - offset: 0, + limit: formData.limit, + offset: formData.offset, }; setFormData(newFormData);