#!/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