aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTad Fisher <tad@simple.com>2017-03-19 23:48:03 -0700
committerTad Fisher <tad@simple.com>2017-03-20 00:56:34 -0700
commit224c4dc57ee42215806c6fb8b92e64ddebaa7fd7 (patch)
tree66cb88d1fb3a776ac0cdb1439fece71be662613d /test
parentacfab191e6bb33f840f0a7106c3eb4cd1ab76267 (diff)
Use expect for interactive tests
Diffstat (limited to 'test')
-rwxr-xr-xtest/insert.t45
-rw-r--r--test/setup.sh6
2 files changed, 40 insertions, 11 deletions
diff --git a/test/insert.t b/test/insert.t
index 0c19d11..b4af4f5 100755
--- a/test/insert.t
+++ b/test/insert.t
@@ -16,9 +16,18 @@ test_expect_success 'Prompts before overwriting key URI' '
uri1="otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Foo"
uri2="otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Bar"
- test_pass_init &&
- "$PASS" otp insert "$uri1" passfile &&
- test_faketty "$PASS" otp insert "$uri2" passfile < <(echo n) &&
+ test_pass_init
+ "$PASS" otp insert "$uri1" passfile
+ expect <<EOD
+ spawn "$PASS" otp insert "$uri2" passfile
+ expect {
+ "An entry already exists" {
+ send "n\r"
+ exp_continue
+ }
+ eof
+ }
+EOD
[[ $("$PASS" show passfile) == "$uri1" ]]
'
@@ -43,16 +52,38 @@ test_expect_success 'Reads non-terminal input' '
test_expect_success 'Reads terminal input in noecho mode' '
uri="otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example"
- test_pass_init &&
- test_faketty "$PASS" otp insert passfile < <(echo -ne "$uri\n$uri\n") &&
+ test_pass_init
+ expect <<EOD
+ spawn "$PASS" otp insert passfile
+ expect {
+ "Enter" {
+ send "$uri\r"
+ exp_continue
+ }
+ "Retype" {
+ send "$uri\r"
+ exp_continue
+ }
+ eof
+ }
+EOD
[[ $("$PASS" show passfile) == "$uri" ]]
'
test_expect_success 'Reads terminal input in echo mode' '
uri="otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example"
- test_pass_init &&
- test_faketty "$PASS" otp insert -e passfile <<< "$uri" &&
+ test_pass_init
+ expect <<EOD
+ spawn "$PASS" otp insert -e passfile
+ expect {
+ "Enter" {
+ send "$uri\r"
+ exp_continue
+ }
+ eof
+ }
+EOD
[[ $("$PASS" show passfile) == "$uri" ]]
'
diff --git a/test/setup.sh b/test/setup.sh
index b363e6d..f407164 100644
--- a/test/setup.sh
+++ b/test/setup.sh
@@ -1,3 +1,5 @@
+#!/usr/bin/env bash
+
# This file should be sourced by all test-scripts
#
# This scripts sets the following:
@@ -65,7 +67,3 @@ test_pass_init() {
rm -rf "$PASSWORD_STORE_DIR"
"$PASS" init "$KEY1"
}
-
-test_faketty() {
- script -qfc "$(printf "%q " "$@")"
-}