diff --git a/test/component/Elsa.Workflows.ComponentTests/Scenarios/Activities/Composition/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs b/test/component/Elsa.Workflows.ComponentTests/Scenarios/Activities/Composition/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs index 34af7f849..928bc317a 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Scenarios/Activities/Composition/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs +++ b/test/component/Elsa.Workflows.ComponentTests/Scenarios/Activities/Composition/BulkDispatchWorkflows/BulkDispatchWorkflowsTests.cs @@ -8,12 +8,14 @@ using Elsa.Workflows.ComponentTests.Fixtures; using Elsa.Workflows.ComponentTests.Scenarios.Activities.Composition.BulkDispatchWorkflows.Workflows; using Elsa.Workflows.Management; using Elsa.Workflows.Models; +using Elsa.Workflows.State; using Microsoft.Extensions.DependencyInjection; namespace Elsa.Workflows.ComponentTests.Scenarios.Activities.Composition.BulkDispatchWorkflows; public class BulkDispatchWorkflowsTests : AppComponentTest { + private const int ChildWorkflowTimeoutSeconds = 30; private readonly AsyncWorkflowRunner _workflowRunner; public BulkDispatchWorkflowsTests(App app) : base(app) @@ -134,25 +136,25 @@ public class BulkDispatchWorkflowsTests : AppComponentTest return (T?)variables.FirstOrDefault(v => v.Variable.Name == variableName)?.Value; } - private async Task<(TestWorkflowExecutionResult Result, List CompletedChildWorkflows)> RunWorkflowAndWaitForChildWorkflowsAsync( + private async Task<(TestWorkflowExecutionResult Result, List CompletedChildWorkflows)> RunWorkflowAndWaitForChildWorkflowsAsync( string parentWorkflowDefinitionId, string childWorkflowDefinitionId, int expectedChildCount) { var workflowEvents = Scope.ServiceProvider.GetRequiredService(); - var completedChildWorkflows = new List(); + var completedChildWorkflows = new List(); var childWorkflowCompletionTcs = new TaskCompletionSource(); // Subscribe to child workflow completion events void OnWorkflowStateCommitted(object? sender, WorkflowStateCommittedEventArgs e) { - if (e.WorkflowExecutionContext.Workflow.Identity.DefinitionId != childWorkflowDefinitionId || - e.WorkflowExecutionContext.Status != WorkflowStatus.Finished) + if (e.WorkflowState.DefinitionId != childWorkflowDefinitionId || + e.WorkflowState.Status != WorkflowStatus.Finished) { return; } - completedChildWorkflows.Add(e.WorkflowExecutionContext); + completedChildWorkflows.Add(e.WorkflowState); if (completedChildWorkflows.Count == expectedChildCount) childWorkflowCompletionTcs.TrySetResult(); } @@ -165,7 +167,7 @@ public class BulkDispatchWorkflowsTests : AppComponentTest var result = await RunWorkflowAsync(parentWorkflowDefinitionId); // Wait for all child workflows to complete - await childWorkflowCompletionTcs.Task; + await childWorkflowCompletionTcs.Task.WaitAsync(TimeSpan.FromSeconds(ChildWorkflowTimeoutSeconds)); return (result, completedChildWorkflows); } @@ -174,4 +176,4 @@ public class BulkDispatchWorkflowsTests : AppComponentTest workflowEvents.WorkflowStateCommitted -= OnWorkflowStateCommitted; } } -} \ No newline at end of file +}