mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-02-06 05:23:08 +00:00
feat: implement Phase 5 integration tests (workflow management)
Implemented comprehensive integration tests for workflow deletion and listing: Test Coverage (16 scenarios): - delete-workflow.test.ts: 3 tests * Successful deletion * Error handling for non-existent workflows * Cleanup verification - list-workflows.test.ts: 13 tests * No filters (all workflows) * Filter by active status (true/false) * Filter verification * Pagination (first page, cursor, last page) * Limit variations (1, 50, 100) * Exclude pinned data * Empty results * Sort order verification Critical Fixes: - handleDeleteWorkflow: Now returns deleted workflow data (per n8n API spec) - handleListWorkflows: Convert tags array to comma-separated string (n8n API format) - N8nApiClient.deleteWorkflow: Return Workflow object instead of void - WorkflowListParams.tags: Changed from string[] to string (API expects CSV format) All 71 integration tests passing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -607,11 +607,12 @@ export async function handleDeleteWorkflow(args: unknown, context?: InstanceCont
|
||||
try {
|
||||
const client = ensureApiConfigured(context);
|
||||
const { id } = z.object({ id: z.string() }).parse(args);
|
||||
|
||||
await client.deleteWorkflow(id);
|
||||
|
||||
|
||||
const deleted = await client.deleteWorkflow(id);
|
||||
|
||||
return {
|
||||
success: true,
|
||||
data: deleted,
|
||||
message: `Workflow ${id} deleted successfully`
|
||||
};
|
||||
} catch (error) {
|
||||
@@ -642,12 +643,17 @@ export async function handleListWorkflows(args: unknown, context?: InstanceConte
|
||||
try {
|
||||
const client = ensureApiConfigured(context);
|
||||
const input = listWorkflowsSchema.parse(args || {});
|
||||
|
||||
|
||||
// Convert tags array to comma-separated string (n8n API format)
|
||||
const tagsParam = input.tags && input.tags.length > 0
|
||||
? input.tags.join(',')
|
||||
: undefined;
|
||||
|
||||
const response = await client.listWorkflows({
|
||||
limit: input.limit || 100,
|
||||
cursor: input.cursor,
|
||||
active: input.active,
|
||||
tags: input.tags,
|
||||
tags: tagsParam as any, // API expects string, not array
|
||||
projectId: input.projectId,
|
||||
excludePinnedData: input.excludePinnedData ?? true
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user