Skip to main content
Glama

n8n-MCP

by 88-888
delete-execution.test.tsβ€’4.52 kB
/** * Integration Tests: handleDeleteExecution * * Tests execution deletion against a real n8n instance. * Covers successful deletion, error handling, and cleanup verification. */ import { describe, it, expect, beforeEach, beforeAll } from 'vitest'; import { createMcpContext } from '../utils/mcp-context'; import { InstanceContext } from '../../../../src/types/instance-context'; import { handleDeleteExecution, handleTriggerWebhookWorkflow, handleGetExecution } from '../../../../src/mcp/handlers-n8n-manager'; import { getN8nCredentials } from '../utils/credentials'; describe('Integration: handleDeleteExecution', () => { let mcpContext: InstanceContext; let webhookUrl: string; beforeEach(() => { mcpContext = createMcpContext(); }); beforeAll(() => { const creds = getN8nCredentials(); webhookUrl = creds.webhookUrls.get; }); // ====================================================================== // Successful Deletion // ====================================================================== describe('Successful Deletion', () => { it('should delete an execution successfully', async () => { // First, create an execution to delete const triggerResponse = await handleTriggerWebhookWorkflow( { webhookUrl, httpMethod: 'GET', waitForResponse: true }, mcpContext ); // Try to extract execution ID let executionId: string | undefined; if (triggerResponse.success && triggerResponse.data) { const responseData = triggerResponse.data as any; executionId = responseData.executionId || responseData.id || responseData.execution?.id || responseData.workflowData?.executionId; } if (!executionId) { console.warn('Could not extract execution ID for deletion test'); return; } // Delete the execution const response = await handleDeleteExecution( { id: executionId }, mcpContext ); expect(response.success).toBe(true); expect(response.data).toBeDefined(); }, 30000); it('should verify execution is actually deleted', async () => { // Create an execution const triggerResponse = await handleTriggerWebhookWorkflow( { webhookUrl, httpMethod: 'GET', waitForResponse: true }, mcpContext ); let executionId: string | undefined; if (triggerResponse.success && triggerResponse.data) { const responseData = triggerResponse.data as any; executionId = responseData.executionId || responseData.id || responseData.execution?.id || responseData.workflowData?.executionId; } if (!executionId) { console.warn('Could not extract execution ID for deletion verification test'); return; } // Delete it const deleteResponse = await handleDeleteExecution( { id: executionId }, mcpContext ); expect(deleteResponse.success).toBe(true); // Try to fetch the deleted execution const getResponse = await handleGetExecution( { id: executionId }, mcpContext ); // Should fail to find the deleted execution expect(getResponse.success).toBe(false); expect(getResponse.error).toBeDefined(); }, 30000); }); // ====================================================================== // Error Handling // ====================================================================== describe('Error Handling', () => { it('should handle non-existent execution ID', async () => { const response = await handleDeleteExecution( { id: '99999999' }, mcpContext ); expect(response.success).toBe(false); expect(response.error).toBeDefined(); }); it('should handle invalid execution ID format', async () => { const response = await handleDeleteExecution( { id: 'invalid-id-format' }, mcpContext ); expect(response.success).toBe(false); expect(response.error).toBeDefined(); }); it('should handle missing execution ID', async () => { const response = await handleDeleteExecution( {} as any, mcpContext ); expect(response.success).toBe(false); expect(response.error).toBeDefined(); }); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/88-888/n8n-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server