Skip to content

Commit cb89f8d

Browse files
committed
Feedback
1 parent ba380dc commit cb89f8d

File tree

4 files changed

+67
-26
lines changed

4 files changed

+67
-26
lines changed

src/Aspire.Hosting.Maui/MauiOtlpExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ private static void ApplyOtlpConfigurationToPlatform<T>(
156156
// Remove the service discovery variables since we're using direct OTLP configuration
157157
context.EnvironmentVariables.Remove(serviceDiscoveryKey);
158158

159-
// Also remove the {RESOURCENAME}_{ENDPOINTNAME} format variable (e.g., MAUIAPP-OTLP_OTLP)
160-
// The resource name keeps its case/dashes, endpoint name is uppercased
159+
// Also remove the {RESOURCENAME}_{ENDPOINTNAME} format variable (e.g., MAUI_APP-OTLP_OTLP)
160+
// The resource name is encoded and uppercased when DevTunnelsResourceBuilderExtensions.WithReference is invoked
161161
var directEndpointKey = $"{EnvironmentVariableNameEncoder.Encode(tunnelConfig.OtlpStub.Name).ToUpperInvariant()}_OTLP";
162162
context.EnvironmentVariables.Remove(directEndpointKey);
163163
}

src/Shared/EnvironmentVariableNameEncoder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public static string Encode(string name)
2121
{
2222
if (string.IsNullOrEmpty(name))
2323
{
24-
return "_";
24+
return "";
2525
}
2626

2727
if (ValidNameRegex().IsMatch(name))

tests/Aspire.Hosting.Maui.Tests/MauiPlatformExtensionsTests.cs

Lines changed: 61 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,30 +25,30 @@ public class MauiPlatformExtensionsTests
2525
(maui, name) => maui.AddWindowsDevice(name),
2626
typeof(MauiWindowsPlatformResource)),
2727

28-
new PlatformTestConfig("MacCatalyst", "Mac Catalyst", "maccatalyst", "mauiapp-maccatalyst", "net10.0-maccatalyst",
29-
(maui) => maui.AddMacCatalystDevice(),
30-
(maui, name) => maui.AddMacCatalystDevice(name),
31-
typeof(MauiMacCatalystPlatformResource)),
28+
//new PlatformTestConfig("MacCatalyst", "Mac Catalyst", "maccatalyst", "mauiapp-maccatalyst", "net10.0-maccatalyst",
29+
// (maui) => maui.AddMacCatalystDevice(),
30+
// (maui, name) => maui.AddMacCatalystDevice(name),
31+
// typeof(MauiMacCatalystPlatformResource)),
3232

33-
new PlatformTestConfig("AndroidDevice", "Android", "android", "mauiapp-android-device", "net10.0-android",
34-
(maui) => maui.AddAndroidDevice(),
35-
(maui, name) => maui.AddAndroidDevice(name),
36-
typeof(MauiAndroidDeviceResource)),
33+
//new PlatformTestConfig("AndroidDevice", "Android", "android", "mauiapp-android-device", "net10.0-android",
34+
// (maui) => maui.AddAndroidDevice(),
35+
// (maui, name) => maui.AddAndroidDevice(name),
36+
// typeof(MauiAndroidDeviceResource)),
3737

38-
new PlatformTestConfig("AndroidEmulator", "Android", "android", "mauiapp-android-emulator", "net10.0-android",
39-
(maui) => maui.AddAndroidEmulator(),
40-
(maui, name) => maui.AddAndroidEmulator(name),
41-
typeof(MauiAndroidEmulatorResource)),
38+
//new PlatformTestConfig("AndroidEmulator", "Android", "android", "mauiapp-android-emulator", "net10.0-android",
39+
// (maui) => maui.AddAndroidEmulator(),
40+
// (maui, name) => maui.AddAndroidEmulator(name),
41+
// typeof(MauiAndroidEmulatorResource)),
4242

43-
new PlatformTestConfig("iOSDevice", "iOS", "ios", "mauiapp-ios-device", "net10.0-ios",
44-
(maui) => maui.AddiOSDevice(),
45-
(maui, name) => maui.AddiOSDevice(name),
46-
typeof(MauiiOSDeviceResource)),
43+
//new PlatformTestConfig("iOSDevice", "iOS", "ios", "mauiapp-ios-device", "net10.0-ios",
44+
// (maui) => maui.AddiOSDevice(),
45+
// (maui, name) => maui.AddiOSDevice(name),
46+
// typeof(MauiiOSDeviceResource)),
4747

48-
new PlatformTestConfig("iOSSimulator", "iOS", "ios", "mauiapp-ios-simulator", "net10.0-ios",
49-
(maui) => maui.AddiOSSimulator(),
50-
(maui, name) => maui.AddiOSSimulator(name),
51-
typeof(MauiiOSSimulatorResource))
48+
//new PlatformTestConfig("iOSSimulator", "iOS", "ios", "mauiapp-ios-simulator", "net10.0-ios",
49+
// (maui) => maui.AddiOSSimulator(),
50+
// (maui, name) => maui.AddiOSSimulator(name),
51+
// typeof(MauiiOSSimulatorResource))
5252
};
5353

5454
[Theory]
@@ -615,6 +615,47 @@ public void WithOtlpDevTunnel_MultiplePlatforms_SharesSameInfrastructure(Platfor
615615
}
616616
}
617617

618+
[Theory]
619+
[MemberData(nameof(AllPlatforms))]
620+
public async Task WithOtlpDevTunnel_CleansUpIntermediateEnvironmentVariables(PlatformTestConfig config)
621+
{
622+
// Arrange
623+
var projectContent = CreateProjectContent(config.RequiredTfm);
624+
var tempFile = CreateTempProjectFile(projectContent);
625+
626+
try
627+
{
628+
var appBuilder = DistributedApplication.CreateBuilder();
629+
var maui = appBuilder.AddMauiProject("mauiapp", tempFile);
630+
var platform = config.AddPlatformWithDefaultName(maui);
631+
632+
// Act
633+
config.ApplyWithOtlpDevTunnel(platform);
634+
635+
var envVars = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(
636+
platform.Resource,
637+
DistributedApplicationOperation.Run,
638+
TestServiceProvider.Instance);
639+
640+
// Assert
641+
Assert.True(envVars.TryGetValue("OTEL_EXPORTER_OTLP_ENDPOINT", out var endpointValue));
642+
Assert.False(string.IsNullOrWhiteSpace(endpointValue));
643+
Assert.True(Uri.TryCreate(endpointValue, UriKind.Absolute, out _));
644+
645+
var tunnelConfig = maui.Resource.Annotations.OfType<OtlpDevTunnelConfigurationAnnotation>().Single();
646+
var stubName = tunnelConfig.OtlpStub.Name;
647+
var serviceDiscoveryKey = $"services__{stubName}__otlp__0";
648+
Assert.DoesNotContain(serviceDiscoveryKey, envVars.Keys);
649+
650+
var directEndpointKey = $"{EnvironmentVariableNameEncoder.Encode(stubName).ToUpperInvariant()}_OTLP";
651+
Assert.DoesNotContain(directEndpointKey, envVars.Keys);
652+
}
653+
finally
654+
{
655+
CleanupTempFile(tempFile);
656+
}
657+
}
658+
618659
// Helper methods
619660

620661
private static string CreateProjectContent(string requiredTfm)

tests/Aspire.Hosting.Tests/Utils/EnvironmentVariableNameEncoderTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ public void Encode_WhenNameStartsWithDigit_PrependsUnderscore(string name, strin
3838
}
3939

4040
[Fact]
41-
public void Encode_WhenNameIsNullOrEmpty_ReturnsSingleUnderscore()
41+
public void Encode_WhenNameIsNullOrEmpty_ReturnsEmptyString()
4242
{
43-
Assert.Equal("_", EnvironmentVariableNameEncoder.Encode(null!));
44-
Assert.Equal("_", EnvironmentVariableNameEncoder.Encode(string.Empty));
43+
Assert.Equal("", EnvironmentVariableNameEncoder.Encode(null!));
44+
Assert.Equal("", EnvironmentVariableNameEncoder.Encode(string.Empty));
4545
}
4646
}

0 commit comments

Comments
 (0)