public async Task SettingOverriddenByEnvironmentIsntRequired() { using var data = CreateTestData(); using var manifest = new TemporaryFile(); using var baseSettings = new TemporaryFile(); using var envSettings = new TemporaryFile(); var vaultName = "somevault"; var sub = Guid.Empty.ToString("D"); await manifest.WriteAllTextAsync($@" storageLocation: type: azure-key-vault parameters: name: {vaultName} subscription: {sub} secrets: one: type: type parameters: p: 1 "); await envSettings.WriteAllTextAsync($@" {{ ""KeyVaultUri"": ""https://{vaultName}.vault.azure.net"", ""second"": ""Specific value"" }} "); await baseSettings.WriteAllTextAsync($@" {{ ""first"": ""[vault(one)]"", ""second"": ""[vault(two)]"" }} "); (await data.Validator.Invoking(v => v.ValidateFileAsync(envSettings.FilePath, baseSettings.FilePath, manifest.FilePath, CancellationToken.None)) .Should() .CompleteWithinAsync(new TimeSpan(0, 0, 5))) .Subject.Should().BeTrue(); data.Console.Errors.Should().BeEmpty(); }
public async Task MissingSettingFails() { using var data = CreateTestData(); using var manifest = new TemporaryFile(); using var baseSettings = new TemporaryFile(); using var envSettings = new TemporaryFile(); var vaultName = "somevault"; var sub = Guid.Empty.ToString("D"); await manifest.WriteAllTextAsync($@" storageLocation: type: azure-key-vault parameters: name: {vaultName} subscription: {sub} secrets: one: type: type parameters: p: 1 "); await envSettings.WriteAllTextAsync($@" {{ ""KeyVaultUri"": ""https://{vaultName}.vault.azure.net"" }} "); await baseSettings.WriteAllTextAsync($@" {{ ""first"": ""[vault(one)]"", ""second"": ""[vault(two)]"" }} "); (await data.Validator.Invoking(v => v.ValidateFileAsync(envSettings.FilePath, baseSettings.FilePath, manifest.FilePath, CancellationToken.None)) .Should() .CompleteWithinAsync(new TimeSpan(0, 0, 5))) .Subject.Should().BeFalse(); data.Console.Errors.Should().HaveCountGreaterOrEqualTo(1).And.Subject.First().message.Should().Contain("Secret 'two' does not exist in manifest file."); }