public StepInstance getStepInstance(
      String workflowId,
      long workflowInstanceId,
      long workflowRunId,
      String stepId,
      String stepAttempt) {
    return getStepInstanceFieldByIds(
        StepInstanceField.ALL,
        workflowId,
        workflowInstanceId,
        workflowRunId,
        stepId,
        stepAttempt,
        this::maestroStepFromResult);
  }
@Test
  public void testGetStepInstance() {
    StepInstance instance = stepDao.getStepInstance(TEST_WORKFLOW_ID, 1, 1, "job1", "1");
    StepInstance latest = stepDao.getStepInstance(TEST_WORKFLOW_ID, 1, 1, "job1", "latest");
    assertEquals(instance, latest);
    assertEquals(StepInstance.Status.RUNNING, instance.getRuntimeState().getStatus());
    assertFalse(instance.getSignalDependencies().isSatisfied());
    assertEquals(
        2,
        instance
            .getDefinition()
            .getOutputs()
            .get(StepOutputsDefinition.StepOutputType.SIGNAL)
            .asSignalOutputsDefinition()
            .getDefinitions()
            .size());
    assertTrue(instance.getArtifacts().isEmpty());
    assertTrue(instance.getTimeline().isEmpty());
    instance.setArtifacts(null);
    instance.setTimeline(null);
    Assertions.assertThat(instance).usingRecursiveComparison().isEqualTo(si);
  }