stash: add tests for `git stash show` config

This commit introduces tests for `git stash show` config. It tests all the cases where `stash.showStat` and `stash.showPatch` are unset or set to true / false. Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com> Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Paul-Sebastian Ungureanu committed Feb 25, 2019 at 23:16 UTC dac566c507baeb4921e1b8ad8d39e8145ca80c12
1 file changed +83
t/t3907-stash-show-config.sh new
+83
@@ -0,0 +1,83 @@
1 +#!/bin/sh
2 +
3 +test_description='Test git stash show configuration.'
4 +
5 +. ./test-lib.sh
6 +
7 +test_expect_success 'setup' '
8 + test_commit file
9 +'
10 +
11 +# takes three parameters:
12 +# 1. the stash.showStat value (or "<unset>")
13 +# 2. the stash.showPatch value (or "<unset>")
14 +# 3. the diff options of the expected output (or nothing for no output)
15 +test_stat_and_patch () {
16 + if test "<unset>" = "$1"
17 + then
18 + test_unconfig stash.showStat
19 + else
20 + test_config stash.showStat "$1"
21 + fi &&
22 +
23 + if test "<unset>" = "$2"
24 + then
25 + test_unconfig stash.showPatch
26 + else
27 + test_config stash.showPatch "$2"
28 + fi &&
29 +
30 + shift 2 &&
31 + echo 2 >file.t &&
32 + if test $# != 0
33 + then
34 + git diff "$@" >expect
35 + fi &&
36 + git stash &&
37 + git stash show >actual &&
38 +
39 + if test $# = 0
40 + then
41 + test_must_be_empty actual
42 + else
43 + test_cmp expect actual
44 + fi
45 +}
46 +
47 +test_expect_success 'showStat unset showPatch unset' '
48 + test_stat_and_patch "<unset>" "<unset>" --stat
49 +'
50 +
51 +test_expect_success 'showStat unset showPatch false' '
52 + test_stat_and_patch "<unset>" false --stat
53 +'
54 +
55 +test_expect_success 'showStat unset showPatch true' '
56 + test_stat_and_patch "<unset>" true --stat -p
57 +'
58 +
59 +test_expect_success 'showStat false showPatch unset' '
60 + test_stat_and_patch false "<unset>"
61 +'
62 +
63 +test_expect_success 'showStat false showPatch false' '
64 + test_stat_and_patch false false
65 +'
66 +
67 +test_expect_success 'showStat false showPatch true' '
68 + test_stat_and_patch false true -p
69 +'
70 +
71 +test_expect_success 'showStat true showPatch unset' '
72 + test_stat_and_patch true "<unset>" --stat
73 +'
74 +
75 +test_expect_success 'showStat true showPatch false' '
76 + test_stat_and_patch true false --stat
77 +'
78 +
79 +test_expect_success 'showStat true showPatch true' '
80 + test_stat_and_patch true true --stat -p
81 +'
82 +
83 +test_done