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