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
49
50
51
52
53
54
#!/bin/sh # # test - a pa test script 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" test "$(printf y | $pa add nested/password 2>&1)" = "\ Generate a password? [y/N]: y 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" test "$(./pa list)" = "nested/password test" || printf 'pa list output should match example\n' # ensure git commits are working git -C test-stuff/passwords log | grep -q "add 'nested/password'" || printf "git log should have line: add 'nested/password'\n"