Show pre-receive-stable stopping following commands if used via a shim.
[git-central.git] / tests / t2001-server-pre-receive-ticket-via-shim.sh
1 #!/bin/sh
2
3 test_description='server pre-receive ticket enforcer via shim'
4
5 . ./test-lib.sh
6
7 test_expect_success 'setup' '
8         echo This is a test. >a &&
9         git add a &&
10         git commit -m "a" &&
11         git clone ./. server &&
12         rm -fr server/.git/hooks &&
13         git remote add origin ./server &&
14         git config --add branch.master.remote origin &&
15         git config --add branch.master.merge refs/heads/master
16 '
17
18 # setup the shim
19 install_server_hook 'pre-receive' 'pre-receive'
20 install_server_hook 'pre-receive-ticket' 'pre-receive-ticket'
21
22 test_expect_success 'reject with bad message via shim' '
23         echo $test_name >a &&
24         git commit -a -m "$test_name" &&
25         head=$(git rev-parse HEAD) &&
26         ! git push >push.out 2>push.err &&
27         cat push.err | grep "Commit $head does not reference a ticket"
28 '
29
30 # the last test has a dirty commit message, so ammend it with a good message
31 test_expect_success 'accept with re via shim' '
32         echo $test_name >a &&
33         git commit --amend -m "$test_name re #3222" &&
34         git push
35 '
36
37 test_done
38