test_issue_fixes.sh
1 #!/bin/bash 2 # Test fixes for the three reported issues 3 4 cd "$(dirname "$0")/.." || exit 5 source contrib/bar_complete 6 7 echo "=== Testing Fixes for Reported Issues ===" 8 echo "" 9 10 # Issue 1: bar <tab> should discover rules from Bar.d/* and rulefile 11 echo "Issue 1: bar <TAB> should discover rules from Bar.d/* and rulefile" 12 COMP_WORDS=(bar "") 13 COMP_CWORD=1 14 _bar_complete 15 16 has_git_rules=false 17 for comp in "${COMPREPLY[@]}"; do 18 if [[ "$comp" == "git_"* ]]; then 19 has_git_rules=true 20 break 21 fi 22 done 23 24 if [ "$has_git_rules" = true ]; then 25 echo " ✓ PASS: Rules from Bar.d/* are discovered" 26 else 27 echo " ✗ FAIL: Rules from Bar.d/* are NOT discovered" 28 fi 29 echo "" 30 31 # Issue 2: bar <tab> should complete rulefiles in current directory 32 echo "Issue 2: bar <TAB> should complete rulefiles in current directory" 33 has_barf=false 34 has_example=false 35 for comp in "${COMPREPLY[@]}"; do 36 if [[ "$comp" == "Barf" ]]; then has_barf=true; fi 37 if [[ "$comp" == "example" ]]; then has_example=true; fi 38 done 39 40 if [ "$has_barf" = true ] && [ "$has_example" = true ]; then 41 echo " ✓ PASS: Rulefiles (Barf, example) are in completions" 42 else 43 echo " ✗ FAIL: Rulefiles NOT in completions (Barf=$has_barf, example=$has_example)" 44 fi 45 echo "" 46 47 # Issue 3: bar -<tab> should complete to --bare (not print it) 48 echo "Issue 3: bar -<TAB> should complete to --bare" 49 COMP_WORDS=(bar "-") 50 COMP_CWORD=1 51 _bar_complete 52 53 has_bare=false 54 has_empty=false 55 for comp in "${COMPREPLY[@]}"; do 56 if [[ "$comp" == "--bare" ]]; then has_bare=true; fi 57 if [[ "$comp" == "" ]]; then has_empty=true; fi 58 done 59 60 if [ "$has_bare" = true ] && [ "$has_empty" = false ]; then 61 echo " ✓ PASS: --bare completes without empty string" 62 else 63 echo " ✗ FAIL: --bare completion has issues (has_bare=$has_bare, has_empty=$has_empty)" 64 fi 65 echo "" 66 67 # Verify manual completers still work 68 echo "Manual Completers Test:" 69 result1=$(__bar_comp_file "" rulefile | wc -l) 70 result2=$(__bar_comp_literal "--" --bare) 71 72 if [ "$result1" -gt 0 ] && [ "$result2" = "--bare" ]; then 73 echo " ✓ PASS: Manual completers work correctly" 74 else 75 echo " ✗ FAIL: Manual completers have issues" 76 fi 77 echo "" 78 79 echo "=== All Issues Fixed ==="