github.com/criteo/command-launcher@v0.0.0-20230407142452-fb616f546e98/test/integration/test-auto-complete.sh (about)

     1  #!/bin/bash
     2  
     3  # availeble environment varibale
     4  # CL_PATH: the path of the command launcher binary
     5  # CL_HOME: the path of the command launcher home directory
     6  # OUTPUT_DIR: the output folder
     7  SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
     8  
     9  # clean up the dropin folder
    10  rm -rf $CL_HOME/dropins
    11  mkdir -p $CL_HOME/dropins
    12  
    13  # copy the example to the dropin folder for the test
    14  cp -R $SCRIPT_DIR/../packages-src/bonjour $CL_HOME/dropins
    15  
    16  echo "> test registred command auto completion"
    17  RESULT=$($CL_PATH __complete bon)
    18  
    19  # check result or exit code, or any thing relevant to the test
    20  echo "$RESULT" | grep -q "print bonjour from command launcher"
    21  if [ $? -eq 0 ]; then
    22    echo "OK"
    23  else
    24    echo "KO - should auto-complete registred command"
    25    exit 1
    26  fi
    27  
    28  echo "> test static argument auto-complete"
    29  RESULT=$($CL_PATH __complete bonjour "")
    30  echo "$RESULT" | grep -q "Joe"
    31  if [ $? -eq 0 ]; then
    32    echo "OK"
    33  else
    34    echo "KO - should auto-complete static arguments"
    35    exit 1
    36  fi
    37  
    38  echo "> test dynamic argument auto-complete"
    39  RESULT=$($CL_PATH __complete greeting saybonjour "")
    40  echo "$RESULT" | grep -q "John"
    41  if [ $? -eq 0 ]; then
    42    echo "OK"
    43  else
    44    echo "KO - should auto-complete dynamic arguments"
    45    exit 1
    46  fi
    47  echo "$RESULT" | grep -q "Kate"
    48  if [ $? -eq 0 ]; then
    49    echo "OK"
    50  else
    51    echo "KO - should auto-complete dynamic arguments"
    52    exit 1
    53  fi
    54  
    55  echo "> test flag name auto-complete"
    56  RESULT=$($CL_PATH __complete bonjour -)
    57  echo "$RESULT" | grep -q "\-\-lang"
    58  if [ $? -eq 0 ]; then
    59    echo "OK"
    60  else
    61    echo "KO - should auto-complete flag names"
    62    exit 1
    63  fi
    64  echo "$RESULT" | grep -q "\-l"
    65  if [ $? -eq 0 ]; then
    66    echo "OK"
    67  else
    68    echo "KO - should auto-complete short flag names"
    69    exit 1
    70  fi
    71  
    72  echo "> test flag static value auto-complete"
    73  RESULT=$($CL_PATH __complete bonjour --lang "")
    74  echo "$RESULT" | grep -q "fr"
    75  if [ $? -eq 0 ]; then
    76    echo "OK"
    77  else
    78    echo "KO - should auto-complete static flag values"
    79    exit 1
    80  fi
    81  echo "$RESULT" | grep -q "jp"
    82  if [ $? -eq 0 ]; then
    83    echo "OK"
    84  else
    85    echo "KO - should auto-complete static flag values"
    86    exit 1
    87  fi
    88  
    89  echo "> test flag dynamic value auto-complete"
    90  RESULT=$($CL_PATH __complete bonjour bo --lang fr --name "")
    91  echo "$RESULT" | grep -q "bo --lang fr"
    92  if [ $? -eq 0 ]; then
    93    echo "OK"
    94  else
    95    echo "KO - should pass original arguments to the completion command"
    96    exit 1
    97  fi
    98  echo "$RESULT" | grep -q "John"
    99  if [ $? -eq 0 ]; then
   100    echo "OK"
   101  else
   102    echo "KO - should auto-complete dynamic flag values"
   103    exit 1
   104  fi
   105  echo "$RESULT" | grep -q "Kate"
   106  if [ $? -eq 0 ]; then
   107    echo "OK"
   108  else
   109    echo "KO - should auto-complete dynamic flag values"
   110    exit 1
   111  fi
   112  
   113  echo "> test delete command auto completion"
   114  RESULT=$($CL_PATH __complete package delete " ")
   115  echo "$RESULT" | grep -q "bonjour"
   116  if [ $? -eq 0 ]; then
   117    echo "OK"
   118  else
   119    echo "KO - should auto-complete package names in package delete command"
   120    exit 1
   121  fi
   122