From: Jameson Miller <jam...@microsoft.com>

Add tests for new ignored mode (matching) when showing all untracked
files.

Signed-off-by: Jameson Miller <jam...@microsoft.com>
---
 t/t7519-ignored-mode.sh | 132 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 132 insertions(+)
 create mode 100755 t/t7519-ignored-mode.sh

diff --git a/t/t7519-ignored-mode.sh b/t/t7519-ignored-mode.sh
new file mode 100755
index 0000000000..a8c35d1cbc
--- /dev/null
+++ b/t/t7519-ignored-mode.sh
@@ -0,0 +1,132 @@
+#!/bin/sh
+
+test_description='git status collapse ignored'
+
+. ./test-lib.sh
+
+# commit initial ignore file
+test_expect_success 'setup initial commit and ignore file' '
+       cat >.gitignore <<-\EOF &&
+       *.ign
+       ignored_dir/
+       !*.unignore
+       EOF
+       git add . &&
+       test_tick &&
+       git commit -m "Initial commit"
+'
+
+# Test status behavior on folder with ignored files
+test_expect_success 'Verify behavior of status on folders with ignored files' '
+       test_when_finished "git clean -fdx" &&
+       cat >expect <<-\EOF &&
+       ? expect
+       ? output
+       ! dir/ignored/ignored_1.ign
+       ! dir/ignored/ignored_2.ign
+       ! ignored/ignored_1.ign
+       ! ignored/ignored_2.ign
+       EOF
+
+       mkdir -p ignored dir/ignored &&
+       touch ignored/ignored_1.ign ignored/ignored_2.ign \
+               dir/ignored/ignored_1.ign dir/ignored/ignored_2.ign &&
+
+       git status --porcelain=v2 --ignored=matching --untracked-files=all 
>output &&
+       test_i18ncmp expect output
+'
+
+# Test status behavior on folder with tracked and ignored files
+test_expect_success 'Verify status on folder with tracked & ignored files' '
+       test_when_finished "git clean -fdx && git reset HEAD~1 --hard" &&
+       cat >expect <<-\EOF &&
+       ? expect
+       ? output
+       ! dir/tracked_ignored/ignored_1.ign
+       ! dir/tracked_ignored/ignored_2.ign
+       ! tracked_ignored/ignored_1.ign
+       ! tracked_ignored/ignored_2.ign
+       EOF
+
+       mkdir -p tracked_ignored dir/tracked_ignored &&
+       touch tracked_ignored/tracked_1 tracked_ignored/tracked_2 \
+               tracked_ignored/ignored_1.ign tracked_ignored/ignored_2.ign \
+               dir/tracked_ignored/tracked_1 dir/tracked_ignored/tracked_2 \
+               dir/tracked_ignored/ignored_1.ign 
dir/tracked_ignored/ignored_2.ign &&
+
+       git add tracked_ignored/tracked_1 tracked_ignored/tracked_2 \
+               dir/tracked_ignored/tracked_1 dir/tracked_ignored/tracked_2 &&
+       test_tick &&
+       git commit -m "commit tracked files" &&
+
+       git status --porcelain=v2 --ignored=matching --untracked-files=all 
>output &&
+       test_i18ncmp expect output
+'
+
+# Test status behavior on folder with untracked and ignored files
+test_expect_success 'Verify status matching ignored files on folder with 
tracked & ignored files' '
+       test_when_finished "git clean -fdx" &&
+       cat >expect <<-\EOF &&
+       ? dir/untracked_ignored/untracked_1
+       ? dir/untracked_ignored/untracked_2
+       ? expect
+       ? output
+       ? untracked_ignored/untracked_1
+       ? untracked_ignored/untracked_2
+       ! dir/untracked_ignored/ignored_1.ign
+       ! dir/untracked_ignored/ignored_2.ign
+       ! untracked_ignored/ignored_1.ign
+       ! untracked_ignored/ignored_2.ign
+       EOF
+
+       mkdir -p untracked_ignored dir/untracked_ignored &&
+       touch untracked_ignored/untracked_1 untracked_ignored/untracked_2 \
+               untracked_ignored/ignored_1.ign untracked_ignored/ignored_2.ign 
\
+               dir/untracked_ignored/untracked_1 
dir/untracked_ignored/untracked_2 \
+               dir/untracked_ignored/ignored_1.ign 
dir/untracked_ignored/ignored_2.ign &&
+
+       git status --porcelain=v2 --ignored=matching --untracked-files=all 
>output &&
+       test_i18ncmp expect output
+'
+
+# Test status behavior on ignored folder
+test_expect_success 'Verify status matching ignored files on ignored folder' '
+       test_when_finished "git clean -fdx" &&
+       cat >expect <<-\EOF &&
+       ? expect
+       ? output
+       ! ignored_dir/
+       EOF
+
+       mkdir ignored_dir &&
+       touch ignored_dir/ignored_1 ignored_dir/ignored_2 \
+               ignored_dir/ignored_1.ign ignored_dir/ignored_2.ign &&
+
+       git status --porcelain=v2 --ignored=matching --untracked-files=all 
>output &&
+       test_i18ncmp expect output
+'
+
+# Test status behavior on ignored folder with tracked file
+test_expect_success 'Verify status behavior on ignored folder containing 
tracked file' '
+       test_when_finished "git clean -fdx && git reset HEAD~1 --hard" &&
+       cat >expect <<-\EOF &&
+       ? expect
+       ? output
+       ! ignored_dir/ignored_1
+       ! ignored_dir/ignored_1.ign
+       ! ignored_dir/ignored_2
+       ! ignored_dir/ignored_2.ign
+       EOF
+
+       mkdir ignored_dir &&
+       touch ignored_dir/ignored_1 ignored_dir/ignored_2 \
+               ignored_dir/ignored_1.ign ignored_dir/ignored_2.ign \
+               ignored_dir/tracked &&
+       git add -f ignored_dir/tracked &&
+       test_tick &&
+       git commit -m "Force add file in ignored directory" &&
+       git status --porcelain=v2 --ignored=matching --untracked-files=all 
>output &&
+       test_i18ncmp expect output
+'
+
+test_done
-- 
2.13.6

Reply via email to