m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/tests/t0050-mv-tests.sh
blob: 936266699630e8026e350e6b7cc9a575beaa985e (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
#!/bin/bash

test_description='Test mv command'
. ./setup.sh

INITIAL_PASSWORD="bla bla bla will we make it!!"

test_expect_success 'Basic move command' '
	pass init $KEY1 &&
	pass git init &&
	pass insert -e cred1 <<<"$INITIAL_PASSWORD" &&
	pass mv cred1 cred2 &&
	[[ -e $PASSWORD_STORE_DIR/cred2.gpg && ! -e $PASSWORD_STORE_DIR/cred1.gpg ]]
'

test_expect_success 'Directory creation' '
	pass mv cred2 directory/ &&
	[[ -d $PASSWORD_STORE_DIR/directory && -e $PASSWORD_STORE_DIR/directory/cred2.gpg ]]
'

test_expect_success 'Directory creation with file rename and empty directory removal' '
	pass mv directory/cred2 newdirectory/cred &&
	[[ -d $PASSWORD_STORE_DIR/newdirectory && -e $PASSWORD_STORE_DIR/newdirectory/cred.gpg && ! -e $PASSWORD_STORE_DIR/directory ]]
'

test_expect_success 'Directory rename' '
	pass mv newdirectory anotherdirectory &&
	[[ -d $PASSWORD_STORE_DIR/anotherdirectory && -e $PASSWORD_STORE_DIR/anotherdirectory/cred.gpg && ! -e $PASSWORD_STORE_DIR/newdirectory ]]
'

test_expect_success 'Directory move into new directory' '
	pass mv anotherdirectory newdirectory/ &&
	[[ -d $PASSWORD_STORE_DIR/newdirectory/anotherdirectory && -e $PASSWORD_STORE_DIR/newdirectory/anotherdirectory/cred.gpg && ! -e $PASSWORD_STORE_DIR/anotherdirectory ]]
'

test_expect_success 'Multi-directory creation and multi-directory empty removal' '
	pass mv newdirectory/anotherdirectory/cred new1/new2/new3/new4/thecred &&
	pass mv new1/new2/new3/new4/thecred cred &&
	[[ ! -d $PASSWORD_STORE_DIR/newdirectory/anotherdirectory && ! -d $PASSWORD_STORE_DIR/new1/new2/new3/new4 && -e $PASSWORD_STORE_DIR/cred.gpg ]]
'

test_expect_success 'Password made it until the end' '
	[[ $(pass show cred) == "$INITIAL_PASSWORD" ]]
'

test_expect_success 'Git is consistent' '
	[[ -z $(git status --porcelain 2>&1) ]]
'

test_done