| File: Secrets\SecretStoreConsumerTests.cs | Web Access |
| Project: src\tests\Aspire.Hosting.Radius.Tests\Aspire.Hosting.Radius.Tests.csproj (Aspire.Hosting.Radius.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #pragma warning disable ASPIRERADIUS006 // Experimental: the secret-store APIs are under test. using Aspire.Hosting.Radius.Annotations; using Aspire.Hosting.Radius.Secrets; using Aspire.Hosting.Utils; namespace Aspire.Hosting.Radius.Tests.Secrets; public class SecretStoreConsumerTests { [Fact] public void ConsumerMethods_RecordConsumersOnEnvironmentAnnotation() { using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); var user = builder.AddParameter("u", secret: true); var pass = builder.AddParameter("p", secret: true); var env = builder.AddRadiusEnvironment("radius"); var store = builder.AddRadiusSecretStore("registry-creds", RadiusSecretStoreType.BasicAuthentication) .WithData(d => { d.Add("username", user); d.Add("password", pass); }); env.WithBicepRegistryAuthentication("myregistry.azurecr.io", store) .WithTerraformGitAuthentication("github.com", store) .WithRecipeEnvironmentSecret("DB_PASSWORD", store, "password"); var annotation = env.Resource.Annotations.OfType<RadiusSecretStoresAnnotation>().Single(); Assert.Equal(3, annotation.Consumers.Count); var registry = annotation.Consumers.Single(c => c.Kind == RadiusSecretStoreConsumerKind.BicepRegistryAuth); Assert.Equal("myregistry.azurecr.io", registry.Selector); Assert.Same(store.Resource, registry.Store); var git = annotation.Consumers.Single(c => c.Kind == RadiusSecretStoreConsumerKind.TerraformGitPat); Assert.Equal("github.com", git.Selector); var envSecret = annotation.Consumers.Single(c => c.Kind == RadiusSecretStoreConsumerKind.EnvSecret); Assert.Equal("DB_PASSWORD", envSecret.Selector); Assert.Equal("password", envSecret.Key); } [Fact] public void WithRecipeEnvironmentSecret_EmptyKey_Throws() { using var builder = TestDistributedApplicationBuilder.Create(DistributedApplicationOperation.Publish); var env = builder.AddRadiusEnvironment("radius"); var store = builder.AddRadiusSecretStore("s", RadiusSecretStoreType.Generic); Assert.Throws<ArgumentException>(() => env.WithRecipeEnvironmentSecret("VAR", store, " ")); } }