* Add unit and integration tests for the `Finish` activity to validate termination behavior (#7110) - Added `FinishInSequenceWorkflow` to test `Finish` activity in a sequence workflow configuration. - Introduced integration tests (`FinishTests`) to confirm `Finish` terminates workflows and skips subsequent activities. - Developed unit tests to verify activity completion and workflow status transitions to `Finished`. * Update test/integration/Elsa.Activities.IntegrationTests/Primitives/Workflows/FinishInSequenceWorkflow.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update test/integration/Elsa.Activities.IntegrationTests/Primitives/Workflows/FinishInSequenceWorkflow.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add `Finish` activity unit test to verify ITerminalNode implementation * Add code coverage report generation and GitHub Pages deployment workflow - Removed unused `tempvalidator` project and its associated files. - Updated GitHub Actions workflow to include steps for generating code coverage reports in HTML format using `dotnet-reportgenerator-globaltool`. - Added deployment of coverage reports to GitHub Pages for the `main` branch. - Updated `.gitignore` to exclude test results and artifacts. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
using Elsa.Activities.IntegrationTests.Primitives.Workflows;
|
|
using Elsa.Testing.Shared;
|
|
using Elsa.Workflows;
|
|
using Elsa.Workflows.Activities;
|
|
using Elsa.Workflows.State;
|
|
using Xunit.Abstractions;
|
|
|
|
namespace Elsa.Activities.IntegrationTests.Primitives;
|
|
|
|
/// <summary>
|
|
/// Integration tests for the <see cref="Finish"/> activity.
|
|
/// </summary>
|
|
public class FinishTests(ITestOutputHelper testOutputHelper)
|
|
{
|
|
private readonly WorkflowTestFixture _fixture = new WorkflowTestFixture(testOutputHelper)
|
|
.AddWorkflow<FinishInSequenceWorkflow>();
|
|
|
|
[Fact(DisplayName = "Finish terminates workflow and prevents subsequent activities from executing")]
|
|
public async Task Finish_TerminatesWorkflowAndPreventsSubsequentActivities()
|
|
{
|
|
// Act
|
|
var workflowState = await _fixture.RunWorkflowAsync(FinishInSequenceWorkflow.DefinitionId);
|
|
|
|
// Assert
|
|
AssertWorkflowFinished(workflowState);
|
|
var lines = _fixture.CapturingTextWriter.Lines.ToList();
|
|
Assert.Contains("Before Finish", lines);
|
|
Assert.DoesNotContain("After Finish", lines);
|
|
}
|
|
|
|
private static void AssertWorkflowFinished(WorkflowState workflowState)
|
|
{
|
|
Assert.Equal(WorkflowStatus.Finished, workflowState.Status);
|
|
Assert.Equal(WorkflowSubStatus.Finished, workflowState.SubStatus);
|
|
}
|
|
}
|