diff --git a/data/nodes.db b/data/nodes.db index 1142059..371c716 100644 Binary files a/data/nodes.db and b/data/nodes.db differ diff --git a/tests/utils/assertions.ts b/tests/utils/assertions.ts index 2c13788..be89de0 100644 --- a/tests/utils/assertions.ts +++ b/tests/utils/assertions.ts @@ -1,5 +1,8 @@ import { expect } from 'vitest'; -import { INodeDefinition, IWorkflow, INode } from '@/types/n8n-api'; +import { WorkflowNode, Workflow } from '@/types/n8n-api'; + +// Use any type for INodeDefinition since it's from n8n-workflow package +type INodeDefinition = any; /** * Custom assertions for n8n-mcp tests @@ -8,7 +11,7 @@ import { INodeDefinition, IWorkflow, INode } from '@/types/n8n-api'; /** * Assert that a value is a valid node definition */ -export function expectValidNodeDefinition(node: any): asserts node is INodeDefinition { +export function expectValidNodeDefinition(node: any) { expect(node).toBeDefined(); expect(node).toHaveProperty('name'); expect(node).toHaveProperty('displayName'); @@ -29,7 +32,7 @@ export function expectValidNodeDefinition(node: any): asserts node is INodeDefin /** * Assert that a value is a valid workflow */ -export function expectValidWorkflow(workflow: any): asserts workflow is IWorkflow { +export function expectValidWorkflow(workflow: any): asserts workflow is Workflow { expect(workflow).toBeDefined(); expect(workflow).toHaveProperty('nodes'); expect(workflow).toHaveProperty('connections'); @@ -42,7 +45,7 @@ export function expectValidWorkflow(workflow: any): asserts workflow is IWorkflo }); // Check connections reference valid nodes - const nodeIds = new Set(workflow.nodes.map((n: INode) => n.id)); + const nodeIds = new Set(workflow.nodes.map((n: WorkflowNode) => n.id)); Object.keys(workflow.connections).forEach(sourceId => { expect(nodeIds.has(sourceId)).toBe(true); @@ -60,7 +63,7 @@ export function expectValidWorkflow(workflow: any): asserts workflow is IWorkflo /** * Assert that a value is a valid workflow node */ -export function expectValidWorkflowNode(node: any): asserts node is INode { +export function expectValidWorkflowNode(node: any): asserts node is WorkflowNode { expect(node).toBeDefined(); expect(node).toHaveProperty('id'); expect(node).toHaveProperty('name'); diff --git a/tests/utils/data-generators.ts b/tests/utils/data-generators.ts index b3571f7..4f9acc2 100644 --- a/tests/utils/data-generators.ts +++ b/tests/utils/data-generators.ts @@ -1,5 +1,8 @@ import { faker } from '@faker-js/faker'; -import { INodeDefinition, INode, IWorkflow } from '@/types/n8n-api'; +import { WorkflowNode, Workflow } from '@/types/n8n-api'; + +// Use any type for INodeDefinition since it's from n8n-workflow package +type INodeDefinition = any; /** * Data generators for creating realistic test data @@ -117,7 +120,7 @@ function generateDisplayOptions(): any { /** * Generate a complete node definition */ -export function generateNodeDefinition(overrides?: Partial): INodeDefinition { +export function generateNodeDefinition(overrides?: Partial): any { const nodeCategory = faker.helpers.arrayElement([ 'Core Nodes', 'Communication', 'Data Transformation', 'Development', 'Files', 'Productivity', 'Analytics' @@ -155,8 +158,8 @@ export function generateNodeDefinition(overrides?: Partial): IN /** * Generate workflow nodes */ -export function generateWorkflowNodes(count = 3): INode[] { - const nodes: INode[] = []; +export function generateWorkflowNodes(count = 3): WorkflowNode[] { + const nodes: WorkflowNode[] = []; for (let i = 0; i < count; i++) { nodes.push({ @@ -221,7 +224,7 @@ function generateNodeParameters(): Record { /** * Generate workflow connections */ -export function generateConnections(nodes: INode[]): Record { +export function generateConnections(nodes: WorkflowNode[]): Record { const connections: Record = {}; // Connect nodes sequentially @@ -263,7 +266,7 @@ export function generateConnections(nodes: INode[]): Record { /** * Generate a complete workflow */ -export function generateWorkflow(nodeCount = 3): IWorkflow { +export function generateWorkflow(nodeCount = 3): Workflow { const nodes = generateWorkflowNodes(nodeCount); return { @@ -281,11 +284,10 @@ export function generateWorkflow(nodeCount = 3): IWorkflow { settings: { executionOrder: 'v1', saveManualExecutions: true, - callerPolicy: 'workflowsFromSameOwner', timezone: faker.location.timeZone() }, staticData: {}, - tags: generateTags(), + tags: generateTags().map(t => t.name), createdAt: faker.date.past().toISOString(), updatedAt: faker.date.recent().toISOString() }; diff --git a/tests/utils/test-helpers.ts b/tests/utils/test-helpers.ts index ff61b5b..bcbe011 100644 --- a/tests/utils/test-helpers.ts +++ b/tests/utils/test-helpers.ts @@ -1,5 +1,8 @@ import { vi } from 'vitest'; -import { INodeDefinition, INode, IWorkflow } from '@/types/n8n-api'; +import { WorkflowNode, Workflow } from '@/types/n8n-api'; + +// Use any type for INodeDefinition since it's from n8n-workflow package +type INodeDefinition = any; /** * Common test utilities and helpers @@ -48,7 +51,7 @@ export function createMockNodeDefinition(overrides?: Partial): /** * Create a mock workflow node */ -export function createMockNode(overrides?: Partial): INode { +export function createMockNode(overrides?: Partial): WorkflowNode { return { id: 'mock-node-id', name: 'Mock Node', @@ -63,7 +66,7 @@ export function createMockNode(overrides?: Partial): INode { /** * Create a mock workflow */ -export function createMockWorkflow(overrides?: Partial): IWorkflow { +export function createMockWorkflow(overrides?: Partial): Workflow { return { id: 'mock-workflow-id', name: 'Mock Workflow',