aboutsummaryrefslogtreecommitdiff
path: root/test/insert.t
blob: eb048989d72ee45e384077fd4952c2d7fb431609 (plain)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env bash

export test_description="Tests pass otp insert commands"

. ./setup.sh

test_expect_success 'Inserts a key URI' '
  uri="otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example"

  test_pass_init &&
  "$PASS" otp insert "$uri" passfile &&
  [[ $("$PASS" show passfile) == "$uri" ]]
'

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) &&
  [[ $("$PASS" show passfile) == "$uri1" ]]
'

test_expect_success 'Force overwrites 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 &&
  "$PASS" otp insert -f "$uri2" passfile &&
  [[ $("$PASS" show passfile) == "$uri2" ]]
'

test_expect_success 'Inserts a basic TOTP key' '
  uri="otpauth://totp/passfile?secret=AAAAAAAAAAAAAAAAAAAAA"

  test_pass_init &&
  "$PASS" otp insert totp -s AAAAAAAAAAAAAAAAAAAAA passfile &&
  [[ $("$PASS" show passfile) == "$uri" ]]
'

test_expect_success 'Inserts a TOTP key with issuer in path' '
  uri="otpauth://totp/example.com:passfile?secret=AAAAAAAAAAAAAAAAAAAAA&issuer=example.com"

  test_pass_init &&
  "$PASS" otp insert totp -s AAAAAAAAAAAAAAAAAAAAA example.com/passfile &&
  [[ $("$PASS" show example.com/passfile) == "$uri" ]]
'

test_expect_success 'Inserts a TOTP key with issuer in nested path' '
  uri="otpauth://totp/foo:passfile?secret=AAAAAAAAAAAAAAAAAAAAA&issuer=foo"

  test_pass_init &&
  "$PASS" otp insert totp -s AAAAAAAAAAAAAAAAAAAAA example.com/foo/passfile &&
  [[ $("$PASS" show example.com/foo/passfile) == "$uri" ]]
'

test_expect_success 'Inserts a TOTP key with spaces in path' '
  uri="otpauth://totp/example%20dot%20com:pass%20file?secret=AAAAAAAAAAAAAAAAAAAAA&issuer=example%20dot%20com"
  test_pass_init &&
  "$PASS" otp insert totp -s AAAAAAAAAAAAAAAAAAAAA "example dot com/pass file" &&
  [[ $("$PASS" show "example dot com/pass file") == "$uri" ]]
'

test_expect_success 'Commits insert to git' '
  test_pass_init &&
  pass git init &&
  "$PASS" otp insert totp -s AAAAAAAAAAAAAAAAAAAAA passfile &&
  git log --no-decorate -1 | grep "Add given OTP secret for passfile to store."
'

test_done