From f5c1ed5ea988cfbef1c753b6f057f1990447f568 Mon Sep 17 00:00:00 2001 From: timglabisch Date: Wed, 10 Jan 2024 14:38:05 +0100 Subject: [PATCH] vault multi get --- src/commands/get_multi.rs | 3 +++ src/test_integration/mod.rs | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/commands/get_multi.rs b/src/commands/get_multi.rs index 8c2e61c..507cbbf 100644 --- a/src/commands/get_multi.rs +++ b/src/commands/get_multi.rs @@ -87,6 +87,9 @@ pub fn get_multi(input: &str, keymap: &KeyMap) -> Result<(), Error> { if errors.len() != 0 { eprintln!("could not decrypt some keys."); + for error in errors { + eprintln!("\t{}", error); + } ::std::process::exit(1); } diff --git a/src/test_integration/mod.rs b/src/test_integration/mod.rs index 9929a7b..c0d2a1e 100644 --- a/src/test_integration/mod.rs +++ b/src/test_integration/mod.rs @@ -95,6 +95,19 @@ mod tests { assert_eq!("VERSION_1_0_0_SECRET_CONTENT", String::from_utf8_lossy(&cmd(VAULT_INTEGRATION_TEST_DIR, "./vault", &["get", "VERSION_1_0_0_SECRET"], true))) } + #[test] + #[serial] + fn test_integration_multi_key() { + test_prepare(); + + let content = cmd(VAULT_INTEGRATION_TEST_DIR, "./vault", &["get_multi", r#"{"secrets": [{"secret": "VERSION_1_0_0_SECRET"}], "templates": [{"template": "{vault{ VERSION_1_0_0_SECRET }vault}TEST"}]}"#], true); + + assert_eq!( + String::from_utf8(content).expect("must be valid utf8"), + r#"{"secrets":{"VERSION_1_0_0_SECRET":{"name":"VERSION_1_0_0_SECRET","value":"VERSION_1_0_0_SECRET_CONTENT"}},"templates":{"{vault{ VERSION_1_0_0_SECRET }vault}TEST":{"name":"{vault{ VERSION_1_0_0_SECRET }vault}TEST","value":"VERSION_1_0_0_SECRET_CONTENTTEST"}}}"# + ); + } + #[test] #[serial] fn test_integration_rotate_key_and_decode_content() {