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:
BIN
data/nodes.db
BIN
data/nodes.db
Binary file not shown.
@@ -1,5 +1,8 @@
|
|||||||
import { expect } from 'vitest';
|
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
|
* 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
|
* 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).toBeDefined();
|
||||||
expect(node).toHaveProperty('name');
|
expect(node).toHaveProperty('name');
|
||||||
expect(node).toHaveProperty('displayName');
|
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
|
* 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).toBeDefined();
|
||||||
expect(workflow).toHaveProperty('nodes');
|
expect(workflow).toHaveProperty('nodes');
|
||||||
expect(workflow).toHaveProperty('connections');
|
expect(workflow).toHaveProperty('connections');
|
||||||
@@ -42,7 +45,7 @@ export function expectValidWorkflow(workflow: any): asserts workflow is IWorkflo
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Check connections reference valid nodes
|
// 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 => {
|
Object.keys(workflow.connections).forEach(sourceId => {
|
||||||
expect(nodeIds.has(sourceId)).toBe(true);
|
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
|
* 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).toBeDefined();
|
||||||
expect(node).toHaveProperty('id');
|
expect(node).toHaveProperty('id');
|
||||||
expect(node).toHaveProperty('name');
|
expect(node).toHaveProperty('name');
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
import { faker } from '@faker-js/faker';
|
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
|
* Data generators for creating realistic test data
|
||||||
@@ -117,7 +120,7 @@ function generateDisplayOptions(): any {
|
|||||||
/**
|
/**
|
||||||
* Generate a complete node definition
|
* Generate a complete node definition
|
||||||
*/
|
*/
|
||||||
export function generateNodeDefinition(overrides?: Partial<INodeDefinition>): INodeDefinition {
|
export function generateNodeDefinition(overrides?: Partial<INodeDefinition>): any {
|
||||||
const nodeCategory = faker.helpers.arrayElement([
|
const nodeCategory = faker.helpers.arrayElement([
|
||||||
'Core Nodes', 'Communication', 'Data Transformation',
|
'Core Nodes', 'Communication', 'Data Transformation',
|
||||||
'Development', 'Files', 'Productivity', 'Analytics'
|
'Development', 'Files', 'Productivity', 'Analytics'
|
||||||
@@ -155,8 +158,8 @@ export function generateNodeDefinition(overrides?: Partial<INodeDefinition>): IN
|
|||||||
/**
|
/**
|
||||||
* Generate workflow nodes
|
* Generate workflow nodes
|
||||||
*/
|
*/
|
||||||
export function generateWorkflowNodes(count = 3): INode[] {
|
export function generateWorkflowNodes(count = 3): WorkflowNode[] {
|
||||||
const nodes: INode[] = [];
|
const nodes: WorkflowNode[] = [];
|
||||||
|
|
||||||
for (let i = 0; i < count; i++) {
|
for (let i = 0; i < count; i++) {
|
||||||
nodes.push({
|
nodes.push({
|
||||||
@@ -221,7 +224,7 @@ function generateNodeParameters(): Record<string, any> {
|
|||||||
/**
|
/**
|
||||||
* Generate workflow connections
|
* Generate workflow connections
|
||||||
*/
|
*/
|
||||||
export function generateConnections(nodes: INode[]): Record<string, any> {
|
export function generateConnections(nodes: WorkflowNode[]): Record<string, any> {
|
||||||
const connections: Record<string, any> = {};
|
const connections: Record<string, any> = {};
|
||||||
|
|
||||||
// Connect nodes sequentially
|
// Connect nodes sequentially
|
||||||
@@ -263,7 +266,7 @@ export function generateConnections(nodes: INode[]): Record<string, any> {
|
|||||||
/**
|
/**
|
||||||
* Generate a complete workflow
|
* Generate a complete workflow
|
||||||
*/
|
*/
|
||||||
export function generateWorkflow(nodeCount = 3): IWorkflow {
|
export function generateWorkflow(nodeCount = 3): Workflow {
|
||||||
const nodes = generateWorkflowNodes(nodeCount);
|
const nodes = generateWorkflowNodes(nodeCount);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -281,11 +284,10 @@ export function generateWorkflow(nodeCount = 3): IWorkflow {
|
|||||||
settings: {
|
settings: {
|
||||||
executionOrder: 'v1',
|
executionOrder: 'v1',
|
||||||
saveManualExecutions: true,
|
saveManualExecutions: true,
|
||||||
callerPolicy: 'workflowsFromSameOwner',
|
|
||||||
timezone: faker.location.timeZone()
|
timezone: faker.location.timeZone()
|
||||||
},
|
},
|
||||||
staticData: {},
|
staticData: {},
|
||||||
tags: generateTags(),
|
tags: generateTags().map(t => t.name),
|
||||||
createdAt: faker.date.past().toISOString(),
|
createdAt: faker.date.past().toISOString(),
|
||||||
updatedAt: faker.date.recent().toISOString()
|
updatedAt: faker.date.recent().toISOString()
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
import { vi } from 'vitest';
|
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
|
* Common test utilities and helpers
|
||||||
@@ -48,7 +51,7 @@ export function createMockNodeDefinition(overrides?: Partial<INodeDefinition>):
|
|||||||
/**
|
/**
|
||||||
* Create a mock workflow node
|
* Create a mock workflow node
|
||||||
*/
|
*/
|
||||||
export function createMockNode(overrides?: Partial<INode>): INode {
|
export function createMockNode(overrides?: Partial<WorkflowNode>): WorkflowNode {
|
||||||
return {
|
return {
|
||||||
id: 'mock-node-id',
|
id: 'mock-node-id',
|
||||||
name: 'Mock Node',
|
name: 'Mock Node',
|
||||||
@@ -63,7 +66,7 @@ export function createMockNode(overrides?: Partial<INode>): INode {
|
|||||||
/**
|
/**
|
||||||
* Create a mock workflow
|
* Create a mock workflow
|
||||||
*/
|
*/
|
||||||
export function createMockWorkflow(overrides?: Partial<IWorkflow>): IWorkflow {
|
export function createMockWorkflow(overrides?: Partial<Workflow>): Workflow {
|
||||||
return {
|
return {
|
||||||
id: 'mock-workflow-id',
|
id: 'mock-workflow-id',
|
||||||
name: 'Mock Workflow',
|
name: 'Mock Workflow',
|
||||||
|
|||||||
Reference in New Issue
Block a user