summaryrefslogtreecommitdiff
path: root/secrets/test/get.sh
diff options
context:
space:
mode:
Diffstat (limited to 'secrets/test/get.sh')
-rwxr-xr-xsecrets/test/get.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/secrets/test/get.sh b/secrets/test/get.sh
new file mode 100755
index 0000000..eb056d9
--- /dev/null
+++ b/secrets/test/get.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+# Tests for get command
+
+this_dir="$(cd "$(dirname "$0")" && pwd)"
+source "${this_dir}/common.sh"
+
+test_get_retrieves_secret() {
+ local secret_value="my-secret-value-123"
+ echo "${secret_value}" | szecret put "test-secret"
+
+ local retrieved
+ retrieved="$(szecret get "test-secret")"
+ assert_equals "${secret_value}" "${retrieved}" "retrieved value"
+ pass "get retrieves secret"
+}
+
+test_get_nonexistent_fails() {
+ assert_failure szecret get "nonexistent-secret"
+ pass "get nonexistent returns error"
+}
+
+test_get_requires_name() {
+ assert_failure szecret get
+ pass "get requires secret name"
+}
+
+test_get_preserves_newlines() {
+ local secret_value=$'line1\nline2\nline3'
+ echo "${secret_value}" | szecret put "multiline-secret"
+
+ local retrieved
+ retrieved="$(szecret get "multiline-secret")"
+ assert_equals "${secret_value}" "${retrieved}" "multiline value"
+ pass "get preserves newlines"
+}
+
+run_tests() {
+ test_get_retrieves_secret
+ test_get_nonexistent_fails
+ test_get_requires_name
+ test_get_preserves_newlines
+}
+
+[[ "${BASH_SOURCE[0]}" == "${0}" ]] && run_tests