public Optional<Details> updateRuntimeOverview(
      WorkflowSummary summary, WorkflowRuntimeOverview overview, Timeline timeline) {
    return updateWorkflowInstance(summary, overview, timeline, null, 0);
  }
@Test
  public void testUpdateRuntimeOverview() {
    WorkflowSummary summary = new WorkflowSummary();
    summary.setWorkflowId(wfi.getWorkflowId());
    summary.setWorkflowInstanceId(wfi.getWorkflowInstanceId());
    summary.setWorkflowRunId(wfi.getWorkflowRunId());
    instanceDao.executeWorkflowInstance(summary, "test_execution_id");
    WorkflowRuntimeOverview overview =
        WorkflowRuntimeOverview.of(
            4,
            singletonEnumMap(StepInstance.Status.RUNNING, WorkflowStepStatusSummary.of(4L)),
            null);
    Timeline timeline =
        new Timeline(Collections.singletonList(TimelineLogEvent.info("hello world")));
    Optional<Details> result = instanceDao.updateRuntimeOverview(summary, overview, timeline);
    assertFalse(result.isPresent());
    WorkflowInstance latestRun =
        instanceDao.getLatestWorkflowInstanceRun(wfi.getWorkflowId(), wfi.getWorkflowInstanceId());
    assertEquals(overview, latestRun.getRuntimeOverview());
    assertEquals(timeline, latestRun.getTimeline());
    assertEquals("test_execution_id", latestRun.getExecutionId());
  }