[PATCH 1/2] sparse-checkout: custom tab completion tests
- From
Lessley Dennington via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Dec 30, 2021, 00:32 UTC
- Message-ID
- <a7f3ae5cddaed61a618a5fa2f9d9c888e0dd7d99.1640824351.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1108.git.1640824351.gitgitgadget@gmail.com>
From: Lessley Dennington <lessleydennington@gmail.com>
Add tests for missing/incorrect components of custom tab completion for the sparse-checkout command. These tests specifically highlight the following:
1. git sparse-checkout <TAB> results in an incomplete list of subcommands (it is missing reapply and add). 2. git sparse-checkout --<TAB> does not complete the help option. 3. Options for subcommands are not tab-completable. 4. git sparse-checkout set <TAB> and git sparse-checkout add <TAB> show both file names and directory names.
Although these tests currently fail, they will succeed with the sparse-checkout modifications in git-completion.bash in the next commit in this series.
Signed-off-by: Lessley Dennington <lessleydennington@gmail.com> --- t/t9902-completion.sh | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+)
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 0f28c4ad940..22271ac2f3b 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -1444,6 +1444,80 @@ test_expect_success 'git checkout - with --detach, complete only references' ' EOF ' +test_expect_failure 'sparse-checkout completes subcommands' ' + test_completion "git sparse-checkout " <<-\EOF + list Z + init Z + set Z + add Z + reapply Z + disable Z + EOF +' + +test_expect_failure 'sparse-checkout completes options' ' + test_completion "git sparse-checkout --" <<-\EOF + --help Z + EOF +' + +test_expect_failure 'sparse-checkout completes subcommand options' ' + test_completion "git sparse-checkout init --" <<-\EOF && + --cone Z + --sparse-index Z + --no-sparse-index Z + EOF + + test_completion "git sparse-checkout set --" <<-\EOF && + --stdin Z + EOF + + test_completion "git sparse-checkout add --" <<-\EOF + --stdin Z + EOF +' + +test_expect_failure 'sparse-checkout completes directory names' ' + # set up sparse-checkout repo + git init sparse-checkout && + ( + cd sparse-checkout && + mkdir -p folder1/0/1 folder2/0 folder3 && + touch folder1/0/1/t.txt && + touch folder2/0/t.txt && + touch folder3/t.txt && + git add . && + git commit -am "Initial commit" + ) && + + # initialize sparse-checkout definitions + git -C sparse-checkout config index.sparse false && + git -C sparse-checkout sparse-checkout init --cone && + git -C sparse-checkout sparse-checkout set folder1/0 folder3 && + + # test tab completion + ( + cd sparse-checkout && + test_completion "git sparse-checkout set f" <<-\EOF + folder1 Z + folder1/0 Z + folder1/0/1 Z + folder2 Z + folder2/0 Z + folder3 Z + EOF + ) && + + ( + cd sparse-checkout/folder1 && + test_completion "git sparse-checkout add " <<-\EOF + ./ Z + 0 Z + 0/1 Z + EOF + ) +' + test_expect_success 'git switch - with -d, complete all references' ' test_completion "git switch -d " <<-\EOF HEAD Z
-- gitgitgadget