|
- using Campaign_Tracker.Server.Configuration;
- using Microsoft.Extensions.Configuration;
-
- namespace Campaign_Tracker.Server.Tests;
-
- public sealed class DotEnvConfigurationTests : IDisposable
- {
- private readonly string _rootPath;
- private readonly string _serverPath;
-
- public DotEnvConfigurationTests()
- {
- _rootPath = Path.Combine(Path.GetTempPath(), $"campaign-tracker-env-{Guid.NewGuid():N}");
- _serverPath = Path.Combine(_rootPath, "Campaign_Tracker.Server");
- Directory.CreateDirectory(_serverPath);
- }
-
- [Fact]
- public void Load_OverridesAppsettingsPlaceholderWithRootEnvValue()
- {
- File.WriteAllText(
- Path.Combine(_rootPath, ".env"),
- "Keycloak__ClientSecret=secret-from-env");
- var configuration = new ConfigurationManager();
- configuration.AddInMemoryCollection(new Dictionary<string, string?>
- {
- ["Keycloak:ClientSecret"] = "REPLACE-ON-SERVER",
- });
-
- DotEnvConfiguration.Load(configuration, _serverPath);
-
- Assert.Equal("secret-from-env", configuration["Keycloak:ClientSecret"]);
- }
-
- public void Dispose()
- {
- if (Directory.Exists(_rootPath))
- {
- Directory.Delete(_rootPath, recursive: true);
- }
- }
- }
|