fix: resolve TypeScript type errors in autofix tests

Fixes TypeScript compilation errors identified by typecheck:
- Error TS2571: Object is of type 'unknown' (lines 121, 243)

## Problem

The `parameters` field in WorkflowNode is typed as `Record<string, unknown>`,
causing TypeScript to see deeply nested property accesses as `unknown` type.

## Solution

Added explicit type assertions when accessing Set node parameters:

```typescript
// Before (fails typecheck):
const value = fetched.nodes[1].parameters.assignments.assignments[0].value;

// After (passes typecheck):
const params = fetched.nodes[1].parameters as {
  assignments: {
    assignments: Array<{ value: unknown }>
  }
};
const value = params.assignments.assignments[0].value;
```

## Verification

-  `npm run typecheck` passes with no errors
-  `npm run lint` passes with no errors
-  All 28 tests passing (12 validation + 16 autofix)
-  No regressions introduced

This maintains type safety while properly handling the dynamic nature
of n8n node parameters.

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2025-10-05 09:49:24 +02:00
parent b467bec93e
commit a696af8cfa

View File

@@ -118,7 +118,8 @@ describe('Integration: handleAutofixWorkflow', () => {
// Verify workflow not modified (fetch it back)
const fetched = await client.getWorkflow(created.id!);
expect(fetched.nodes[1].parameters.assignments.assignments[0].value).toBe('$json.data');
const params = fetched.nodes[1].parameters as { assignments: { assignments: Array<{ value: string }> } };
expect(params.assignments.assignments[0].value).toBe('$json.data');
} else {
// No fixes available - that's also a valid result
expect(data.message).toContain('No automatic fixes available');
@@ -240,7 +241,8 @@ describe('Integration: handleAutofixWorkflow', () => {
// Verify workflow was actually modified
const fetched = await client.getWorkflow(created.id!);
const setValue = fetched.nodes[1].parameters.assignments.assignments[0].value;
const params = fetched.nodes[1].parameters as { assignments: { assignments: Array<{ value: unknown }> } };
const setValue = params.assignments.assignments[0].value;
// Expression format should be fixed (depends on what fixes were available)
expect(setValue).toBeDefined();
} else {