fix: resolve TypeScript linting errors in test files

- Add null checks with non-null assertions in docs-mapper.test.ts
- Add undefined checks with non-null assertions in node-parser-outputs.test.ts
- Use type assertions (as any) for workflow objects in validator tests
- Fix fuzzy search test query to be less typo-heavy

All TypeScript strict checks now pass successfully.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2025-08-07 17:57:08 +02:00
parent a77379b40b
commit 00f3f1fbfd
5 changed files with 95 additions and 83 deletions

View File

@@ -82,7 +82,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not crash or produce output-related errors
expect(result).toBeDefined();
@@ -113,7 +113,7 @@ describe('Loop Output Fix - Edge Cases', () => {
connections: {}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
expect(result).toBeDefined();
expect(result.valid).toBeTruthy(); // Empty workflow with webhook should be valid
@@ -147,7 +147,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should warn about self-reference but not crash
const selfRefWarnings = result.warnings.filter(w =>
@@ -188,7 +188,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
const negativeIndexErrors = result.errors.filter(e =>
e.message?.includes('Invalid connection index -1')
@@ -234,7 +234,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should validate without crashing (n8n allows large indices)
expect(result).toBeDefined();
@@ -266,7 +266,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should handle gracefully without crashing
expect(result).toBeDefined();
@@ -306,7 +306,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should handle malformed connections but report errors
expect(result).toBeDefined();
@@ -366,7 +366,7 @@ describe('Loop Output Fix - Edge Cases', () => {
connections
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should warn about missing loop back because depth limit prevents detection
const loopBackWarnings = result.warnings.filter(w =>
@@ -423,7 +423,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should complete without hanging and warn about missing loop back
expect(result).toBeDefined();
@@ -469,7 +469,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should warn about missing loop back and self-reference
const loopBackWarnings = result.warnings.filter(w =>
@@ -526,7 +526,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should handle without performance issues
expect(result).toBeDefined();
@@ -589,7 +589,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should validate all connection types
expect(result).toBeDefined();
@@ -615,7 +615,7 @@ describe('Loop Output Fix - Edge Cases', () => {
connections: {}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not produce SplitInBatches-specific warnings for isolated node
const splitWarnings = result.warnings.filter(w =>
@@ -657,7 +657,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should NOT warn about empty loop output (it's only a problem if loop connects to something but doesn't loop back)
// An empty loop output is valid - it just means no looping occurs
@@ -703,7 +703,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Both outputs go to same node which loops back - should be valid
// No warnings about loop back since it does connect back
@@ -749,7 +749,7 @@ describe('Loop Output Fix - Edge Cases', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should error about reversed outputs since function node on done output connects back
const reversedErrors = result.errors.filter(e =>
@@ -776,7 +776,7 @@ describe('Loop Output Fix - Edge Cases', () => {
connections: {}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should report unknown node type error
const unknownNodeErrors = result.errors.filter(e =>
@@ -817,7 +817,7 @@ describe('Loop Output Fix - Edge Cases', () => {
};
const startTime = Date.now();
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
const duration = Date.now() - startTime;
// Should complete within reasonable time (< 5 seconds)
@@ -855,7 +855,7 @@ describe('Loop Output Fix - Edge Cases', () => {
connections
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should validate all nodes without performance issues
expect(result).toBeDefined();

View File

@@ -64,7 +64,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should complete validation without crashing
expect(result).toBeDefined();
@@ -114,7 +114,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should identify potential processing nodes
expect(result).toBeDefined();
@@ -163,7 +163,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not warn about final nodes on done output
expect(result).toBeDefined();
@@ -205,7 +205,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
const negativeIndexErrors = result.errors.filter(e =>
e.message?.includes('Invalid connection index -1')
@@ -239,7 +239,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
const missingNodeErrors = result.errors.filter(e =>
e.message?.includes('non-existent node')
@@ -276,7 +276,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not warn about self-reference for SplitInBatches
const selfRefWarnings = result.warnings.filter(w =>
@@ -311,7 +311,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should warn about self-reference for non-loop nodes
const selfRefWarnings = result.warnings.filter(w =>
@@ -368,7 +368,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should validate without major errors
expect(result).toBeDefined();
@@ -399,7 +399,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
connections: {}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should handle gracefully without crashing
expect(result).toBeDefined();
@@ -422,7 +422,7 @@ describe('WorkflowValidator - SplitInBatches Validation (Simplified)', () => {
connections: {}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should report unknown node error
const unknownErrors = result.errors.filter(e =>

View File

@@ -98,7 +98,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// The validator should detect the processing node name/type pattern and loop back
const reversedErrors = result.errors.filter(e =>
@@ -125,7 +125,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
// No loop back from Process Item
});
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
expect(result.warnings).toContainEqual(
expect.objectContaining({
@@ -153,7 +153,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
});
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
expect(result.warnings).toContainEqual(
expect.objectContaining({
@@ -182,7 +182,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
// Process Item doesn't connect back to Split In Batches
});
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
expect(result.warnings).toContainEqual(
expect.objectContaining({
@@ -241,7 +241,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not have SplitInBatches-specific errors or warnings
const splitErrors = result.errors.filter(e =>
@@ -317,7 +317,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(complexWorkflow);
const result = await validator.validateWorkflow(complexWorkflow as any);
// Should accept this correct structure without warnings
const loopWarnings = result.warnings.filter(w =>
@@ -369,7 +369,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
const hasProcessingWarning = result.warnings.some(w =>
w.message?.includes('appears to be a processing node')
@@ -409,7 +409,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not warn about missing loop back since it exists
const missingLoopBackWarnings = result.warnings.filter(w =>
@@ -454,7 +454,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not warn about missing loop back since indirect loop exists
const missingLoopBackWarnings = result.warnings.filter(w =>
@@ -507,7 +507,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
connections
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should warn about missing loop back because depth limit prevents detection
const missingLoopBackWarnings = result.warnings.filter(w =>
@@ -546,7 +546,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should complete without hanging and warn about missing loop back
const missingLoopBackWarnings = result.warnings.filter(w =>
@@ -578,7 +578,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not warn about self-reference for SplitInBatches
const selfReferenceWarnings = result.warnings.filter(w =>
@@ -607,7 +607,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should warn about self-reference for non-loop nodes
const selfReferenceWarnings = result.warnings.filter(w =>
@@ -639,7 +639,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should have connection error for non-existent node
const connectionErrors = result.errors.filter(e =>
@@ -669,7 +669,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should not crash and should not have SplitInBatches-specific errors
expect(result).toBeDefined();
@@ -696,7 +696,7 @@ describe('WorkflowValidator - Loop Node Validation', () => {
}
};
const result = await validator.validateWorkflow(workflow);
const result = await validator.validateWorkflow(workflow as any);
// Should handle gracefully without crashing
expect(result).toBeDefined();