/ tests / test_issue_fixes.sh
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 ==="