mirror of
https://github.com/git/git.git
synced 2026-03-12 18:09:46 +01:00
These tests cover default behavior (help.autocorrect is unset), no correction, immediate correction, delayed correction, and rejection when the typo is too dissimilar. Signed-off-by: Jiamu Sun <39@barroit.sh> Signed-off-by: Junio C Hamano <gitster@pobox.com>
52 lines
1.2 KiB
Bash
Executable File
52 lines
1.2 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 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
|