Address health check review feedback

Agent-Logs-Url: https://github.com/elsa-workflows/elsa-core/sessions/71c9cf76-ccac-4020-87f4-1e4122d34645

Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-05-20 22:56:42 +00:00 committed by GitHub
parent d2c2e5c429
commit 2ade23bc82
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 34 additions and 1 deletions

View file

@ -27,6 +27,7 @@ public class ElsaWorkflowPersistenceHealthCheck(IServiceProvider serviceProvider
var attemptedProbes = probeResults.Where(x => !x.Skipped).Select(x => x.StoreName).ToList();
var successfulProbes = probeResults.Where(x => !x.Skipped && x.Exception == null).Select(x => x.StoreName).ToList();
var skippedProbes = probeResults.Where(x => x.Skipped).Select(x => x.StoreName).ToList();
var failedProbes = probeResults.Where(x => x.Exception != null).Select(x => x.StoreName).ToList();
var failedProbe = probeResults.FirstOrDefault(x => x.Exception != null);
if (failedProbe != null)
{
@ -78,6 +79,9 @@ public class ElsaWorkflowPersistenceHealthCheck(IServiceProvider serviceProvider
if (attemptedProbes.Count > 0)
data["attemptedProbes"] = string.Join(",", attemptedProbes);
if (failedProbes.Count > 0)
data["failedProbes"] = string.Join(",", failedProbes);
if (skippedProbes.Count > 0)
data["skippedProbes"] = string.Join(",", skippedProbes);

View file

@ -37,6 +37,11 @@ public class ElsaWorkflowPersistenceHealthCheckTests
Assert.Equal(HealthStatus.Healthy, result.Status);
Assert.Equal("persistence", result.Data["category"]);
Assert.Equal("workflow-definitions,workflow-instances,triggers,bookmark-queue", result.Data["probes"]);
Assert.Equal("workflow-definitions,workflow-instances,triggers,bookmark-queue", result.Data["attemptedProbes"]);
await _workflowDefinitionStore.Received(1).FindAsync(
Arg.Is<WorkflowDefinitionFilter>(x => x.Id == "00000000-0000-0000-0000-000000000000"),
Arg.Any<CancellationToken>());
}
[Fact]
@ -51,8 +56,9 @@ public class ElsaWorkflowPersistenceHealthCheckTests
Assert.Equal("persistence", result.Data["category"]);
Assert.Equal("triggers", result.Data["failedStore"]);
Assert.Equal("triggers", result.Data["failedProbe"]);
Assert.Equal("workflow-definitions,workflow-instances,triggers,bookmark-queue", result.Data["attemptedProbes"]);
Assert.Equal("workflow-definitions,workflow-instances,bookmark-queue", result.Data["probes"]);
Assert.Equal("workflow-definitions,workflow-instances,triggers,bookmark-queue", result.Data["attemptedProbes"]);
Assert.Equal("triggers", result.Data["failedProbes"]);
}
[Fact]

View file

@ -0,0 +1,23 @@
using Elsa.Extensions;
using Elsa.Workflows.Runtime.Options;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
namespace Elsa.Workflows.Runtime.UnitTests.HealthChecks;
public class HealthCheckExtensionsTests
{
[Fact]
public void AddElsaReadinessChecksRegistersReadinessOptions()
{
var services = new ServiceCollection();
services
.AddHealthChecks()
.AddElsaReadinessChecks(includePersistence: false, includeDistributedLocks: true);
using var serviceProvider = services.BuildServiceProvider();
Assert.NotNull(serviceProvider.GetRequiredService<IOptions<ElsaReadinessHealthCheckOptions>>());
}
}