@JsonIgnore
  public List<String> getAllStepIds() {
    List<String> allStepIds = new ArrayList<>(steps.size());
    getAllStepIds(steps, allStepIds);
    return allStepIds;
  }
@Test
  public void testGetAllStepIdsInNestedForeach() {
    TypedStep step = new TypedStep();
    step.setId("foo");
    ForeachStep foreachStep = new ForeachStep();
    foreachStep.setId("foreach-step");
    foreachStep.setSteps(Collections.nCopies(Constants.STEP_LIST_SIZE_LIMIT - 1, step));

    Workflow workflow = Workflow.builder().steps(Collections.singletonList(foreachStep)).build();
    assertEquals(Constants.STEP_LIST_SIZE_LIMIT, workflow.getAllStepIds().size());
    List<String> expected = new ArrayList<>();
    expected.add("foreach-step");
    expected.addAll(Collections.nCopies(Constants.STEP_LIST_SIZE_LIMIT - 1, "foo"));
    assertEquals(expected, workflow.getAllStepIds());
  }