summaryrefslogtreecommitdiffstats
path: root/t/t3907-stash-show-config.sh
blob: 10914bba7b3737ea89af320f93371e44b4694a11 (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
74
75
76
77
78
79
80
81
82
83
#!/bin/sh

test_description='Test git stash show configuration.'

. ./test-lib.sh

test_expect_success 'setup' '
	test_commit file
'

# takes three parameters:
# 1. the stash.showStat value (or "<unset>")
# 2. the stash.showPatch value (or "<unset>")
# 3. the diff options of the expected output (or nothing for no output)
test_stat_and_patch () {
	if test "<unset>" = "$1"
	then
		test_unconfig stash.showStat
	else
		test_config stash.showStat "$1"
	fi &&

	if test "<unset>" = "$2"
	then
		test_unconfig stash.showPatch
	else
		test_config stash.showPatch "$2"
	fi &&

	shift 2 &&
	echo 2 >file.t &&
	if test $# != 0
	then
		git diff "$@" >expect
	fi &&
	git stash &&
	git stash show >actual &&

	if test $# = 0
	then
		test_must_be_empty actual
	else
		test_cmp expect actual
	fi
}

test_expect_success 'showStat unset showPatch unset' '
	test_stat_and_patch "<unset>" "<unset>" --stat
'

test_expect_success 'showStat unset showPatch false' '
	test_stat_and_patch "<unset>" false --stat
'

test_expect_success 'showStat unset showPatch true' '
	test_stat_and_patch "<unset>" true --stat -p
'

test_expect_success 'showStat false showPatch unset' '
	test_stat_and_patch false "<unset>"
'

test_expect_success 'showStat false showPatch false' '
	test_stat_and_patch false false
'

test_expect_success 'showStat false showPatch true' '
	test_stat_and_patch false true -p
'

test_expect_success 'showStat true showPatch unset' '
	test_stat_and_patch true "<unset>" --stat
'

test_expect_success 'showStat true showPatch false' '
	test_stat_and_patch true false --stat
'

test_expect_success 'showStat true showPatch true' '
	test_stat_and_patch true true --stat -p
'

test_done