59 lines
1.4 KiB
Bash
Executable File
59 lines
1.4 KiB
Bash
Executable File
#!/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 show hint only' '
|
|
test_must_fail git worktree lsit 2>actual &&
|
|
test_grep "most similar subcommand" actual
|
|
'
|
|
|
|
test_expect_success "'never' disables autocorrection" '
|
|
test_config help.autocorrect never &&
|
|
|
|
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
|
|
do
|
|
test_expect_success "'$mode' disables autocorrection and shows hints" "
|
|
test_config help.autocorrect $mode &&
|
|
|
|
test_must_fail git worktree lsit 2>actual &&
|
|
test_grep 'most similar subcommand' actual
|
|
"
|
|
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
|