aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rwxr-xr-xt/t1800-hook.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/t/t1800-hook.sh b/t/t1800-hook.sh
index f1048a5119..9797802735 100755
--- a/t/t1800-hook.sh
+++ b/t/t1800-hook.sh
@@ -318,6 +318,38 @@ test_expect_success 'rejects hooks with no commands configured' '
test_grep "hook.broken.command" actual
'
+test_expect_success 'disabled hook is not run' '
+ test_config hook.skipped.event "test-hook" &&
+ test_config hook.skipped.command "echo \"Should not run\"" &&
+ test_config hook.skipped.enabled false &&
+
+ git hook run --ignore-missing test-hook 2>actual &&
+ test_must_be_empty actual
+'
+
+test_expect_success 'disabled hook does not appear in git hook list' '
+ test_config hook.active.event "pre-commit" &&
+ test_config hook.active.command "echo active" &&
+ test_config hook.inactive.event "pre-commit" &&
+ test_config hook.inactive.command "echo inactive" &&
+ test_config hook.inactive.enabled false &&
+
+ git hook list pre-commit >actual &&
+ test_grep "active" actual &&
+ test_grep ! "inactive" actual
+'
+
+test_expect_success 'globally disabled hook can be re-enabled locally' '
+ test_config_global hook.global-hook.event "test-hook" &&
+ test_config_global hook.global-hook.command "echo \"global-hook ran\"" &&
+ test_config_global hook.global-hook.enabled false &&
+ test_config hook.global-hook.enabled true &&
+
+ echo "global-hook ran" >expected &&
+ git hook run test-hook 2>actual &&
+ test_cmp expected actual
+'
+
test_expect_success 'git hook run a hook with a bad shebang' '
test_when_finished "rm -rf bad-hooks" &&
mkdir bad-hooks &&