fix: resolve lint errors in test utilities

- Fix TypeScript type imports for WorkflowNode and Workflow
- Remove unsupported callerPolicy from workflow settings
- Convert tags array to string array as per API types
- Use 'any' type for INodeDefinition since it's from n8n-workflow package
This commit is contained in:
czlonkowski
2025-07-28 20:51:26 +02:00
parent 9b2f6fa365
commit 0252788dd6
4 changed files with 24 additions and 16 deletions

Binary file not shown.

View File

@@ -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');

View File

@@ -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>): INodeDefinition {
export function generateNodeDefinition(overrides?: Partial<INodeDefinition>): any {
const nodeCategory = faker.helpers.arrayElement([
'Core Nodes', 'Communication', 'Data Transformation',
'Development', 'Files', 'Productivity', 'Analytics'
@@ -155,8 +158,8 @@ export function generateNodeDefinition(overrides?: Partial<INodeDefinition>): 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<string, any> {
/**
* Generate workflow connections
*/
export function generateConnections(nodes: INode[]): Record<string, any> {
export function generateConnections(nodes: WorkflowNode[]): Record<string, any> {
const connections: Record<string, any> = {};
// Connect nodes sequentially
@@ -263,7 +266,7 @@ export function generateConnections(nodes: INode[]): Record<string, any> {
/**
* 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()
};

View File

@@ -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<INodeDefinition>):
/**
* Create a mock workflow node
*/
export function createMockNode(overrides?: Partial<INode>): INode {
export function createMockNode(overrides?: Partial<WorkflowNode>): WorkflowNode {
return {
id: 'mock-node-id',
name: 'Mock Node',
@@ -63,7 +66,7 @@ export function createMockNode(overrides?: Partial<INode>): INode {
/**
* Create a mock workflow
*/
export function createMockWorkflow(overrides?: Partial<IWorkflow>): IWorkflow {
export function createMockWorkflow(overrides?: Partial<Workflow>): Workflow {
return {
id: 'mock-workflow-id',
name: 'Mock Workflow',