test: Added tests for the Azure Key Vault provider
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
use gman::config::{Config, ProviderConfig};
|
||||
use gman::providers::azure_key_vault::AzureKeyVaultProvider;
|
||||
use gman::providers::{SecretProvider, SupportedProvider};
|
||||
use pretty_assertions::{assert_eq, assert_str_eq};
|
||||
use validator::Validate;
|
||||
|
||||
#[test]
|
||||
fn test_azure_provider_name() {
|
||||
let provider = AzureKeyVaultProvider {
|
||||
vault_name: Some("my-vault".into()),
|
||||
};
|
||||
assert_str_eq!(provider.name(), "AzureKeyVaultProvider");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_azure_provider_validation_ok() {
|
||||
let provider = AzureKeyVaultProvider {
|
||||
vault_name: Some("vault-prod".into()),
|
||||
};
|
||||
assert!(provider.validate().is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_azure_provider_missing_vault_name() {
|
||||
let provider = AzureKeyVaultProvider { vault_name: None };
|
||||
assert!(provider.validate().is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_supported_provider_display_and_validate() {
|
||||
let sp = SupportedProvider::AzureKeyVault {
|
||||
provider_def: AzureKeyVaultProvider {
|
||||
vault_name: Some("kv-demo".into()),
|
||||
},
|
||||
};
|
||||
assert!(sp.validate().is_ok());
|
||||
assert_eq!(sp.to_string(), "azure_key_vault");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_provider_config_with_azure_deserialize_and_extract() {
|
||||
// Minimal ProviderConfig YAML using the azure_key_vault variant
|
||||
let yaml = r#"---
|
||||
name: azure
|
||||
type: azure_key_vault
|
||||
vault_name: my-vault
|
||||
"#;
|
||||
|
||||
let pc: ProviderConfig = serde_yaml::from_str(yaml).expect("valid provider config yaml");
|
||||
assert!(pc.validate().is_ok());
|
||||
|
||||
let mut pc_owned = pc.clone();
|
||||
let provider: &mut dyn SecretProvider = pc_owned.extract_provider();
|
||||
assert_eq!(provider.name(), "AzureKeyVaultProvider");
|
||||
|
||||
// Round-trip through Config with default_provider
|
||||
let cfg_yaml = r#"---
|
||||
default_provider: azure
|
||||
providers:
|
||||
- name: azure
|
||||
type: azure_key_vault
|
||||
vault_name: my-vault
|
||||
"#;
|
||||
let cfg: Config = serde_yaml::from_str(cfg_yaml).expect("valid config yaml");
|
||||
assert!(cfg.validate().is_ok());
|
||||
|
||||
let extracted = cfg
|
||||
.extract_provider_config(None)
|
||||
.expect("should find default provider");
|
||||
assert_eq!(extracted.name.as_deref(), Some("azure"));
|
||||
}
|
||||
@@ -22,7 +22,9 @@ fn test_gcp_provider_validation_ok() {
|
||||
|
||||
#[test]
|
||||
fn test_gcp_provider_missing_project() {
|
||||
let provider = GcpSecretManagerProvider { gcp_project_id: None };
|
||||
let provider = GcpSecretManagerProvider {
|
||||
gcp_project_id: None,
|
||||
};
|
||||
assert!(provider.validate().is_err());
|
||||
}
|
||||
|
||||
@@ -71,4 +73,3 @@ providers:
|
||||
.expect("should find default provider");
|
||||
assert_eq!(extracted.name.as_deref(), Some("gcp"));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
mod aws_secrets_manager_tests;
|
||||
mod azure_key_vault_tests;
|
||||
mod gcp_secret_manager_tests;
|
||||
mod local_tests;
|
||||
mod provider_tests;
|
||||
|
||||
Reference in New Issue
Block a user