test
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
#!/bin/sh
#
# test - a pa test script
export pa="$(pwd)/pa"
export PA_DIR=test-stuff/passwords
# clean up previous run
# (the previous state is left around
# intentionally, in case the dev
# wants to poke around)
# that's why we don't clean up on exit
rm -rf test-stuff
# pa welcomes you
$pa | grep -q "a simple password manager" ||
printf "pa should print a welcome message\n"
# generate pa dirs/identityfile/recipientfile
$pa list
# pa auto-generated files are correct
test -s test-stuff/identities ||
printf "an identities file should exist\n"
test -s test-stuff/recipients ||
printf "a recipients file should exist\n"
test -d "$PA_DIR/.git" ||
printf "git dir should exist\n"
# TODO: ensure git author/email are set correctly, etc
# pa add
printf 'y' | $pa add test 2>&1 >/dev/null ||
printf "pa add should be capable of adding a test password\n"
printf 'y' | $pa add nested/password 2>&1 |
grep -q "Saved 'nested/password' to the store." ||
printf 'pa add should say it stored nested/password\n'
test -s test-stuff/passwords/nested/password.age ||
printf 'pa add should create an encrypted password file\n'
# pa list
$pa list | grep -q test ||
printf "pa list should list the test password\n"
# ensure git commits are working
cd test-stuff/passwords/
git log | grep -q "add 'nested/password'" ||
printf "git log should have line: add 'nested/password'\n"