Skip to content

Commit

Permalink
Merge branch 'main' into dapr-redis-ext-fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
aaronpowell authored Mar 2, 2025
2 parents 0948183 + a85e060 commit 9f311d3
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
using Microsoft.Extensions.Configuration;
using Projects;

var builder = DistributedApplication.CreateBuilder(args);

var mailPit = builder.AddMailPit("mailpit");
var httpPort = builder.Configuration.GetValue<int?>("MailPit:HttpPort");
var mailPit = builder.AddMailPit("mailpit", httpPort: httpPort);

var sendmail = builder.AddProject<CommunityToolkit_Aspire_Hosting_MailPit_SendMailApi>("sendmail")
.WithReference(mailPit)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,14 @@ public static IResourceBuilder<MailPitContainerResource> AddMailPit(this IDistri
targetPort: MailPitContainerResource.HttpEndpointPort,
port: httpPort,
name: MailPitContainerResource.HttpEndpointName)
.WithHttpHealthCheck("/", httpPort, MailPitContainerResource.HttpEndpointName);
.WithHttpHealthCheck(
path: "/livez",
statusCode: 200,
endpointName: MailPitContainerResource.HttpEndpointName)
.WithHttpHealthCheck(
path: "/readyz",
statusCode: 200,
endpointName: MailPitContainerResource.HttpEndpointName);

return rb;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using Aspire.Components.Common.Tests;
using Aspire.Hosting;
using CommunityToolkit.Aspire.Testing;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System.Security.Cryptography;

namespace CommunityToolkit.Aspire.Hosting.MailPit.Tests;

[RequiresDocker]
public sealed class AppHostHealthChecksTests(AppHostHealthChecksTests.MailPitAspireIntegrationTestFixture<Projects.CommunityToolkit_Aspire_Hosting_MailPit_AppHost> fixture)
: IClassFixture<AppHostHealthChecksTests.MailPitAspireIntegrationTestFixture<Projects.CommunityToolkit_Aspire_Hosting_MailPit_AppHost>>
{
private const string ResourceName = "mailpit";

[Fact]
public async Task ResourceStartsHealthyUsingCustomHttpPort()
{
await fixture.ResourceNotificationService
.WaitForResourceHealthyAsync(ResourceName)
.WaitAsync(TimeSpan.FromMinutes(1));
}

public sealed class MailPitAspireIntegrationTestFixture<TEntryPoint>()
: AspireIntegrationTestFixture<TEntryPoint> where TEntryPoint : class
{
protected override void OnBuilderCreated(DistributedApplicationBuilder applicationBuilder)
{
base.OnBuilderCreated(applicationBuilder);
applicationBuilder.Configuration.AddInMemoryCollection([
new KeyValuePair<string, string?>("MailPit:HttpPort", $"{GetRandomPort()}"),
]);
}

private static int GetRandomPort()
{
return RandomNumberGenerator.GetInt32(1024, 65535);
}
}
}

0 comments on commit 9f311d3

Please sign in to comment.