Skip to content

Commit f07086b

Browse files
committed
Update ContainerHasAspireEnvironmentVariables to evaluate final env vars.
1 parent 5eac39d commit f07086b

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

tests/CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.Tests/ResourceCreationTests.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1+
using Aspire.Components.Common.Tests;
12
using Aspire.Hosting;
23
using Aspire.Hosting.Utils;
3-
using Microsoft.Extensions.FileProviders;
4-
using Microsoft.Extensions.Hosting;
4+
using Xunit.Abstractions;
55

66
namespace CommunityToolkit.Aspire.Hosting.OpenTelemetryCollector.Tests;
77

8-
public class ResourceCreationTests
8+
public class ResourceCreationTests(ITestOutputHelper testOutputHelper)
99
{
1010
[Fact]
1111
public void CanCreateTheCollectorResource()
1212
{
13-
var builder = DistributedApplication.CreateBuilder();
13+
var builder = TestDistributedApplicationBuilder.Create();
1414

1515
builder.AddOpenTelemetryCollector("collector")
1616
.WithConfig("./config.yaml")
@@ -150,33 +150,33 @@ public void CanDisableBothEndpoints()
150150
}
151151

152152
[Fact]
153-
public void ContainerHasAspireEnvironmentVariables()
153+
[RequiresDocker]
154+
public async Task ContainerHasAspireEnvironmentVariables()
154155
{
155-
var builder = DistributedApplication.CreateBuilder();
156+
using var builder = TestDistributedApplicationBuilder.Create()
157+
.WithTestAndResourceLogging(testOutputHelper);
158+
builder.Configuration["APPHOST:ContainerHostname"] = "what.ever";
156159

157-
builder.AddOpenTelemetryCollector("collector")
160+
var collector = builder.AddOpenTelemetryCollector("collector")
158161
.WithAppForwarding();
159162

160163
using var app = builder.Build();
161164
var appModel = app.Services.GetRequiredService<DistributedApplicationModel>();
162-
var collectorResource = appModel.Resources.OfType<OpenTelemetryCollectorResource>().SingleOrDefault();
163-
Assert.NotNull(collectorResource);
164165

165-
var envs = collectorResource.Annotations.OfType<EnvironmentCallbackAnnotation>().ToList();
166-
Assert.NotEmpty(envs);
166+
var resourceNotificationService = app.Services.GetRequiredService<ResourceNotificationService>();
167167

168-
var context = new EnvironmentCallbackContext(new DistributedApplicationExecutionContext(new DistributedApplicationExecutionContextOptions(DistributedApplicationOperation.Run)));
169-
foreach (var env in envs)
170-
{
171-
env.Callback(context);
172-
}
168+
await app.StartAsync();
169+
await resourceNotificationService.WaitForResourceHealthyAsync(collector.Resource.Name);
170+
171+
Assert.True(resourceNotificationService.TryGetCurrentState(collector.Resource.Name, out var resourceEvent));
172+
173+
var envVars = resourceEvent.Snapshot.EnvironmentVariables.ToDictionary(k => k.Name, v => v.Value);
173174

174-
Assert.Contains("ASPIRE_ENDPOINT", context.EnvironmentVariables.Keys);
175-
Assert.Contains("ASPIRE_API_KEY", context.EnvironmentVariables.Keys);
175+
var endpoint = Assert.Contains("ASPIRE_ENDPOINT", envVars);
176+
var apiKey = Assert.Contains("ASPIRE_API_KEY", envVars);
176177

177-
var url = Assert.IsType<HostUrl>(context.EnvironmentVariables["ASPIRE_ENDPOINT"]);
178-
Assert.Equal("http://localhost:18889", url.Url);
179-
Assert.NotNull(context.EnvironmentVariables["ASPIRE_API_KEY"]);
178+
Assert.Equal($"http://what.ever:18889", endpoint);
179+
Assert.NotNull(apiKey);
180180
}
181181

182182
[Fact]

0 commit comments

Comments
 (0)