diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts index 30856482a1..076c9e1a11 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts @@ -674,6 +674,34 @@ describe('DefaultWorkflowRunner', () => { ); } }); + + it('should validate each action iteration', async () => { + const task = createMockTaskWithSpec({ + apiVersion: 'scaffolder.backstage.io/v1beta3', + steps: [ + { + id: 'test', + name: 'name', + each: '${{parameters.data}}', + action: 'jest-validated-action', + input: { foo: '${{each.value.foo}}' }, + }, + ], + output: {}, + parameters: { + data: [ + { + foo: 0, + }, + {}, + ], + }, + }); + await expect(runner.execute(task)).rejects.toThrow( + 'Invalid input passed to action jest-validated-action[1], instance requires property "foo"', + ); + expect(fakeActionHandler).not.toHaveBeenCalled(); + }); }); describe('secrets', () => {