@@ -390,6 +390,7 @@ await ExecuteWorkerAsync<InfoWorkflow>(async worker =>
390390 ( InfoWorkflow wf ) => wf . RunAsync ( ) ,
391391 new ( id : $ "workflow-{ Guid . NewGuid ( ) } ", taskQueue : worker . Options . TaskQueue ! ) ) ;
392392 var result = await handle . GetResultAsync ( ) ;
393+ var history = await handle . FetchHistoryAsync ( ) ;
393394 Assert . Equal ( 1 , result . Attempt ) ;
394395 Assert . Null ( result . ContinuedRunId ) ;
395396 Assert . Null ( result . CronSchedule ) ;
@@ -400,15 +401,19 @@ await ExecuteWorkerAsync<InfoWorkflow>(async worker =>
400401 Assert . Null ( result . Root ) ;
401402 Assert . Equal ( handle . ResultRunId , result . RunId ) ;
402403 Assert . Null ( result . RunTimeout ) ;
403- Assert . InRange (
404- result . StartTime ,
405- DateTime . UtcNow - TimeSpan . FromMinutes ( 5 ) ,
406- DateTime . UtcNow + TimeSpan . FromMinutes ( 5 ) ) ;
407404 Assert . Equal ( worker . Options . TaskQueue , result . TaskQueue ) ;
408405 // TODO(cretz): Can assume default 10 in all test servers?
409406 Assert . Equal ( TimeSpan . FromSeconds ( 10 ) , result . TaskTimeout ) ;
410407 Assert . Equal ( handle . Id , result . WorkflowId ) ;
411408 Assert . Equal ( "InfoWorkflow" , result . WorkflowType ) ;
409+ // Start time is the first task start time, but workflow start time is the actual start
410+ // time
411+ var workflowStartTime = history . Events .
412+ Single ( e => e . WorkflowExecutionStartedEventAttributes != null ) . EventTime . ToDateTime ( ) ;
413+ Assert . Equal ( workflowStartTime , result . WorkflowStartTime ) ;
414+ var firstTaskStartTime = history . Events .
415+ First ( e => e . WorkflowTaskStartedEventAttributes != null ) . EventTime . ToDateTime ( ) ;
416+ Assert . Equal ( firstTaskStartTime , result . StartTime ) ;
412417 } ) ;
413418 // Child info
414419 await ExecuteWorkerAsync < InfoFromChildWorkflow > (
0 commit comments