't9001-send-email.sh',
't9002-column.sh',
't9003-help-autocorrect.sh',
+ 't9004-autocorrect-subcommand.sh',
't9100-git-svn-basic.sh',
't9101-git-svn-props.sh',
't9102-git-svn-deep-rmdir.sh',
--- /dev/null
+#!/bin/sh
+
+test_description='subcommand auto-correction test
+
+Test autocorrection for subcommands with different
+help.autocorrect mode.'
+
+. ./test-lib.sh
+
+test_expect_success 'setup' "
+ echo '^error: unknown subcommand: ' >grep_unknown
+"
+
+test_expect_success 'default is not to autocorrect' '
+ test_must_fail git worktree lsit 2>actual &&
+ head -n1 actual >first && test_grep -f grep_unknown first
+'
+
+for mode in false no off 0 show never
+do
+ test_expect_success "'$mode' disables autocorrection" "
+ test_config help.autocorrect $mode &&
+
+ test_must_fail git worktree lsit 2>actual &&
+ head -n1 actual >first && test_grep -f grep_unknown first
+ "
+done
+
+for mode in -39 immediate 1
+do
+ test_expect_success "autocorrect immediately with '$mode'" - <<-EOT
+ test_config help.autocorrect $mode &&
+
+ git worktree lsit 2>actual &&
+ test_grep "you meant 'list'\.$" actual
+ EOT
+done
+
+test_expect_success 'delay path is executed' - <<-\EOT
+ test_config help.autocorrect 2 &&
+
+ git worktree lsit 2>actual &&
+ test_grep '^Continuing in 0.2 seconds, ' actual
+EOT
+
+test_expect_success 'deny if too dissimilar' - <<-\EOT
+ test_must_fail git remote rensnr 2>actual &&
+ head -n1 actual >first && test_grep -f grep_unknown first
+EOT
+
+test_done