diff --git a/src/CommunityToolkit.Aspire.Hosting.Adminer/AdminerBuilderExtensions.cs b/src/CommunityToolkit.Aspire.Hosting.Adminer/AdminerBuilderExtensions.cs index d2e7d1c89..beb05e93e 100644 --- a/src/CommunityToolkit.Aspire.Hosting.Adminer/AdminerBuilderExtensions.cs +++ b/src/CommunityToolkit.Aspire.Hosting.Adminer/AdminerBuilderExtensions.cs @@ -51,6 +51,7 @@ public static IResourceBuilder AddAdminer(this IDistri .WithImage(AdminerContainerImageTags.Image, AdminerContainerImageTags.Tag) .WithImageRegistry(AdminerContainerImageTags.Registry) .WithHttpEndpoint(targetPort: 8080, port: port, name: AdminerContainerResource.PrimaryEndpointName) + .WithUrlForEndpoint(AdminerContainerResource.PrimaryEndpointName, e => e.DisplayText = "Adminer Dashboard") .ExcludeFromManifest(); var assembly = Assembly.GetExecutingAssembly(); diff --git a/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateBuilderExtensions.cs b/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateBuilderExtensions.cs index 0d3308344..e2a997cce 100644 --- a/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateBuilderExtensions.cs +++ b/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateBuilderExtensions.cs @@ -80,6 +80,7 @@ public static IResourceBuilder AddDbGate(this IDistribu .WithImage(DbGateContainerImageTags.Image, DbGateContainerImageTags.Tag) .WithImageRegistry(DbGateContainerImageTags.Registry) .WithHttpEndpoint(targetPort: 3000, port: port, name: DbGateContainerResource.PrimaryEndpointName) + .WithUrlForEndpoint(DbGateContainerResource.PrimaryEndpointName, e => e.DisplayText = "DbGate Dashboard") .ExcludeFromManifest(); return dbGateContainerBuilder; diff --git a/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs index 80dd3e01f..5ac142d41 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.Adminer.Tests/AddAdminerTests.cs @@ -1,6 +1,8 @@ using System.Net.Sockets; using System.Text.Json; +using Aspire.Components.Common.Tests; using Aspire.Hosting; +using Aspire.Hosting.Utils; namespace CommunityToolkit.Aspire.Hosting.Adminer.Tests; public class AddAdminerTests @@ -208,4 +210,29 @@ public void WithAdminerShouldShouldAddOneAdminerResourceForMultipleDatabaseTypes var containerResource = Assert.Single(appModel.Resources.OfType()); Assert.Equal("postgres1-adminer", containerResource.Name); } + + [Fact] + [RequiresDocker] + public async Task AddAdminerWithDefaultsAddsUrlAnnotations() + { + using var builder = TestDistributedApplicationBuilder.Create(); + + var adminer = builder.AddAdminer("adminer"); + + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + builder.Eventing.Subscribe((e, ct) => + { + tcs.SetResult(); + return Task.CompletedTask; + }); + + var app = await builder.BuildAsync(); + await app.StartAsync(); + await tcs.Task; + + var urls = adminer.Resource.Annotations.OfType(); + Assert.Single(urls, u => u.DisplayText == "Adminer Dashboard"); + + await app.StopAsync(); + } } diff --git a/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs b/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs index 496506d15..3059789f4 100644 --- a/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs +++ b/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/AddDbGateTests.cs @@ -1,5 +1,7 @@ using System.Net.Sockets; +using Aspire.Components.Common.Tests; using Aspire.Hosting; +using Aspire.Hosting.Utils; namespace CommunityToolkit.Aspire.Hosting.DbGate.Tests; public class AddDbGateTests @@ -462,4 +464,29 @@ public void WithDbGateShouldShouldAddOneDbGateResourceForMultipleDatabaseTypes() var containerResource = Assert.Single(appModel.Resources.OfType()); Assert.Equal("mongodb1-dbgate", containerResource.Name); } + + [Fact] + [RequiresDocker] + public async Task AddDbGateWithDefaultsAddsUrlAnnotations() + { + using var builder = TestDistributedApplicationBuilder.Create(); + + var dbgate = builder.AddDbGate("dbgate"); + + var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + builder.Eventing.Subscribe((e, ct) => + { + tcs.SetResult(); + return Task.CompletedTask; + }); + + var app = await builder.BuildAsync(); + await app.StartAsync(); + await tcs.Task; + + var urls = dbgate.Resource.Annotations.OfType(); + Assert.Single(urls, u => u.DisplayText == "DbGate Dashboard"); + + await app.StopAsync(); + } }