Files
kandev/apps/web/e2e/tests/workflow/workflow-duplication-helpers.ts
T
2026-08-12 11:12:56 +01:00

52 lines
1.4 KiB
TypeScript

import { ApiClient } from "../../helpers/api-client";
export type WorkflowDuplicationSeed = {
workflowId: string;
reviewStepId: string;
doneStepId: string;
taskId: string;
};
export async function seedWorkflowDuplication(
apiClient: ApiClient,
workspaceId: string,
name: string,
agentProfileId?: string,
): Promise<WorkflowDuplicationSeed> {
const workflow = await apiClient.createWorkflow(workspaceId, name);
const review = await apiClient.createWorkflowStep(workflow.id, "Review", 0, {
is_start_step: true,
});
const done = await apiClient.createWorkflowStep(workflow.id, "Done", 1);
await apiClient.updateWorkflow(workflow.id, {
description: "Copied workflow description",
prompt: "Copied workflow prompt",
...(agentProfileId ? { agent_profile_id: agentProfileId } : {}),
});
await apiClient.updateWorkflowStep(review.id, {
prompt: "Review step prompt",
stage_type: "review",
events: {
on_turn_complete: [{ type: "move_to_step", config: { step_id: done.id } }],
},
wip_limit: 2,
});
await apiClient.updateWorkflowStep(done.id, {
prompt: "Done step prompt",
pull_from_step_id: review.id,
});
const task = await apiClient.seedTask(workspaceId, `${name} source task`, {
workflow_id: workflow.id,
workflow_step_id: review.id,
});
return {
workflowId: workflow.id,
reviewStepId: review.id,
doneStepId: done.id,
taskId: task.task_id,
};
}