From b9caf51bf82f1fba173e06397387e9ddbd26f778 Mon Sep 17 00:00:00 2001 From: Matthew Schuchard <8029687+mschuchard@users.noreply.github.com> Date: Tue, 18 Feb 2025 09:39:41 -0500 Subject: [PATCH] stopgap vault client constructor unit test updates --- vault/client_test.go | 99 +++++++++++++------------------------------- 1 file changed, 28 insertions(+), 71 deletions(-) diff --git a/vault/client_test.go b/vault/client_test.go index 067625b..1f4ec0b 100644 --- a/vault/client_test.go +++ b/vault/client_test.go @@ -1,7 +1,6 @@ package vault import ( - "os" "strings" "testing" @@ -9,121 +8,79 @@ import ( ) var ( - backupVaultConfig = &util.VaultConfig{} - expectedDefaultConfig = vaultConfig{ - address: "http://127.0.0.1:8200", - insecure: true, - engine: awsIam, - token: "", - awsMountPath: "aws", - awsRole: "", - } + backupVaultConfig = &util.VaultConfig{} backupVaultTokenConfig = &util.VaultConfig{ Address: "https://127.0.0.1:8234", Engine: "token", Token: util.VaultToken, SnapshotPath: "/tmp/my_vault.backup", } - expectedTokenConfig = vaultConfig{ - address: "https://127.0.0.1:8234", - insecure: false, - engine: vaultToken, - token: util.VaultToken, - awsMountPath: "", - awsRole: "", - } backupVaultAWSConfig = &util.VaultConfig{ Address: "https://127.0.0.1:8234", Insecure: true, AWSMountPath: "gcp", AWSRole: "my_role", } - expectedAWSConfig = vaultConfig{ - address: "https://127.0.0.1:8234", - insecure: true, - engine: awsIam, - token: "", - awsMountPath: "gcp", - awsRole: "my_role", - } ) -func TestNewVaultConfig(test *testing.T) { +func TestNewVaultClient(test *testing.T) { // test with defaults - vaultConfigDefault, err := NewVaultConfig(backupVaultConfig) - if err != nil { - test.Error("vault config constructor failed default initialization") - test.Error(err) + _, err := NewVaultClient(backupVaultConfig) + if err == nil || !strings.Contains(err.Error(), "NoCredentialProviders: no valid providers in chain") { + test.Errorf("expected error (contains): NoCredentialProviders: no valid providers in chain, actual: %v", err) } - if *vaultConfigDefault != expectedDefaultConfig { - test.Error("vault config default constructor did not initialize with expected values") - test.Errorf("expected vault config values: %v", expectedDefaultConfig) - test.Errorf("actual vault config values: %v", *vaultConfigDefault) - } + /*if vaultClientDefault.Address() != "http://127.0.0.1:8200" || len(vaultClientDefault.Token()) > 0 { + test.Error("vault client default constructor did not initialize with expected values") + test.Error("expected default vault client values: http://127.0.0.1:8200 and empty string") + test.Errorf("actual vault client values: %v", *vaultClientDefault) + }*/ // test with token - vaultConfigToken, err := NewVaultConfig(backupVaultTokenConfig) + /*vaultClientToken, err := NewVaultClient(backupVaultTokenConfig) if err != nil { - test.Error("vault config constructor failed custom token initialization") + test.Error("client failed to initialize with basic token auth config information") test.Error(err) } - if *vaultConfigToken != expectedTokenConfig { - test.Error("vault config token constructor did not initialize with expected values") - test.Errorf("expected vault config values: %v", expectedTokenConfig) - test.Errorf("actual vault config values: %v", *vaultConfigToken) + if vaultClientToken.Address() != "https://127.0.0.1:8234" || vaultClientToken.Token() != util.VaultToken { + test.Error("vault client token constructor did not initialize with expected values") + test.Errorf("expected vault client values: %s, %s", backupVaultTokenConfig.Address, backupVaultTokenConfig.Token) + test.Errorf("actual vault client values: %v", *vaultClientToken) } // test with aws - vaultConfigAWS, err := NewVaultConfig(backupVaultAWSConfig) - if err != nil { - test.Error("vault config constructor custom failed aws initialization") - test.Error(err) + _, err = NewVaultClient(backupVaultAWSConfig) + if err == nil || !strings.Contains(err.Error(), "NoCredentialProviders: no valid providers in chain") { + test.Errorf("expected error (contains): NoCredentialProviders: no valid providers in chain, actual: %v", err) } - if *vaultConfigAWS != expectedAWSConfig { - test.Error("vault config aws constructor did not initialize with expected values") - test.Errorf("expected vault config values: %v", expectedAWSConfig) - test.Errorf("actual vault config values: %v", *vaultConfigAWS) - } + if vaultClientAWS.Address() != "https://127.0.0.1:8234" || len(vaultClientAWS.Token()) > 0 { + test.Error("vault client aws constructor did not initialize with expected values") + test.Errorf("expected vault client values: %s, %s", backupVaultAWSConfig.Address, backupVaultAWSConfig.Token) + test.Errorf("actual vault client values: %v", *vaultClientAWS) + }*/ // test errors in reverse validation order backupVaultConfig.Token = "1234" - if _, err = NewVaultConfig(backupVaultConfig); err == nil || err.Error() != "invalid vault token" { + if _, err = NewVaultClient(backupVaultConfig); err == nil || err.Error() != "invalid vault token" { test.Errorf("expected error: invalid vault token, actual: %v", err) } backupVaultConfig.Engine = "kubernetes" - if _, err = NewVaultConfig(backupVaultConfig); err == nil || err.Error() != "invalid Vault authentication engine" { + if _, err = NewVaultClient(backupVaultConfig); err == nil || err.Error() != "invalid Vault authentication engine" { test.Errorf("expected error: invalid Vault authentication engine, actual: %v", err) } backupVaultConfig.Engine = "" backupVaultConfig.AWSMountPath = "azure" - if _, err = NewVaultConfig(backupVaultConfig); err == nil || err.Error() != "unable to deduce authentication engine" { + if _, err = NewVaultClient(backupVaultConfig); err == nil || err.Error() != "unable to deduce authentication engine" { test.Errorf("expected error: unable to deduce authentication engine, actual: %v", err) } backupVaultConfig.Token = "" backupVaultConfig.Address = "file:///foo" - if _, err = NewVaultConfig(backupVaultConfig); err == nil || err.Error() != "invalid Vault server address" { + if _, err = NewVaultClient(backupVaultConfig); err == nil || err.Error() != "invalid Vault server address" { test.Error("expected error for invalid Vault server address, but none was returned") } - os.Setenv("VAULT_ADDR", "") -} - -func TestNewVaultClient(test *testing.T) { - // test client with aws iam auth - expectedAWSConfig.address = "http://127.0.0.1:8200" - if _, err := NewVaultClient(&expectedAWSConfig); err == nil || !strings.Contains(err.Error(), "NoCredentialProviders: no valid providers in chain") { - test.Errorf("expected error (contains): NoCredentialProviders: no valid providers in chain, actual: %v", err) - } - - // test client with token auth - expectedTokenConfig.address = "http://127.0.0.1:8200" - if _, err := NewVaultClient(&expectedTokenConfig); err != nil { - test.Error("client failed to initialize with basic token auth config information") - test.Error(err) - } }