secrets/test/list.sh (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#!/bin/bash
# Tests for list command
this_dir="$(cd "$(dirname "$0")" && pwd)"
source "${this_dir}/common.sh"
test_list_shows_secrets() {
echo "value1" | szecret put "secret-a"
echo "value2" | szecret put "secret-b"
echo "value3" | szecret put "secret-c"
local list_output
list_output="$(szecret list)"
assert_contains "${list_output}" "secret-a" "list output"
assert_contains "${list_output}" "secret-b" "list output"
assert_contains "${list_output}" "secret-c" "list output"
pass "list shows all secrets"
}
test_list_empty_store() {
local list_output
list_output="$(szecret list)"
assert_equals "" "${list_output}" "empty list"
pass "list handles empty store"
}
test_list_sorted() {
echo "v" | szecret put "zebra"
echo "v" | szecret put "apple"
echo "v" | szecret put "mango"
local list_output
list_output="$(szecret list)"
# Check that apple comes before mango comes before zebra
local apple_pos mango_pos zebra_pos
apple_pos=$(echo "${list_output}" | grep -n "apple" | cut -d: -f1)
mango_pos=$(echo "${list_output}" | grep -n "mango" | cut -d: -f1)
zebra_pos=$(echo "${list_output}" | grep -n "zebra" | cut -d: -f1)
if [[ "${apple_pos}" -lt "${mango_pos}" && "${mango_pos}" -lt "${zebra_pos}" ]]; then
pass "list is sorted"
else
fail "list is not sorted: apple=${apple_pos}, mango=${mango_pos}, zebra=${zebra_pos}"
fi
}
run_tests() {
test_list_empty_store
test_list_shows_secrets
test_list_sorted
}
[[ "${BASH_SOURCE[0]}" == "${0}" ]] && run_tests
|