diff --git a/apps/api/src/app/workflows-v2/usecases/duplicate-workflow/duplicate-workflow.usecase.ts b/apps/api/src/app/workflows-v2/usecases/duplicate-workflow/duplicate-workflow.usecase.ts index 38b5f62e3d8..b05c7756c2e 100644 --- a/apps/api/src/app/workflows-v2/usecases/duplicate-workflow/duplicate-workflow.usecase.ts +++ b/apps/api/src/app/workflows-v2/usecases/duplicate-workflow/duplicate-workflow.usecase.ts @@ -81,6 +81,9 @@ export class DuplicateWorkflowUseCase { steps: this.mapStepsToDuplicate(originWorkflow.steps), preferences: this.mapPreferences(preferences), isTranslationEnabled: overrides.isTranslationEnabled ?? originWorkflow.isTranslationEnabled, + payloadSchema: originWorkflow.payloadSchema || null, + validatePayload: originWorkflow.validatePayload, + severity: originWorkflow.severity, }; } diff --git a/apps/api/src/app/workflows-v2/workflow.controller.e2e.ts b/apps/api/src/app/workflows-v2/workflow.controller.e2e.ts index e9c2c86816f..771290e75d1 100644 --- a/apps/api/src/app/workflows-v2/workflow.controller.e2e.ts +++ b/apps/api/src/app/workflows-v2/workflow.controller.e2e.ts @@ -787,6 +787,37 @@ describe('Workflow Controller E2E API Testing #novu-v2', () => { expect(res.error!.message).to.contain('Workflow'); expect(res.error!.ctx?.workflowId).to.contain('123'); }); + + it('should duplicate a workflow with payloadSchema, validatePayload, and severity', async () => { + const payloadSchema = { + type: 'object', + properties: { + name: { type: 'string' }, + email: { type: 'string' }, + }, + required: ['name'], + }; + const createWorkflowDto: CreateWorkflowDto = buildWorkflow({ + name: 'Test Workflow with Schema', + payloadSchema, + validatePayload: true, + }); + const workflowCreated = await createWorkflow(apiClient, createWorkflowDto); + + const duplicatedWorkflow = ( + await apiClient.workflows.duplicate( + { + name: 'Duplicated Workflow with Schema', + }, + workflowCreated.id + ) + ).result; + + expect(duplicatedWorkflow?.id).to.not.equal(workflowCreated.id); + expect(duplicatedWorkflow?.payloadSchema).to.deep.equal(payloadSchema); + expect(duplicatedWorkflow?.validatePayload).to.equal(true); + expect(duplicatedWorkflow?.severity).to.equal(workflowCreated.severity); + }); }); describe('Get step data', () => {