Inline setup and cleanup functions in completion script test (#1352)
This commit is contained in:
parent
7f7275550d
commit
7680b19979
3
justfile
3
justfile
@ -170,6 +170,9 @@ watch-readme:
|
|||||||
generate-completions:
|
generate-completions:
|
||||||
./bin/generate-completions
|
./bin/generate-completions
|
||||||
|
|
||||||
|
test-completions:
|
||||||
|
./tests/completions/just.bash
|
||||||
|
|
||||||
build-book:
|
build-book:
|
||||||
cargo run --package generate-book
|
cargo run --package generate-book
|
||||||
mdbook build book/en
|
mdbook build book/en
|
||||||
|
@ -1,30 +1,14 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# --- Shared functions ---
|
# --- Shared functions ---
|
||||||
|
|
||||||
cdroot() {
|
|
||||||
cd "$(git rev-parse --show-toplevel)" > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
setup() {
|
|
||||||
cdroot
|
|
||||||
cd tests/completions > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup() {
|
|
||||||
unset COMP_WORDS
|
|
||||||
unset COMP_CWORD
|
|
||||||
unset COMPREPLY
|
|
||||||
}
|
|
||||||
|
|
||||||
reply_equals() {
|
reply_equals() {
|
||||||
local reply=$(declare -p COMPREPLY)
|
local reply=$(declare -p COMPREPLY)
|
||||||
local expected="$1"
|
local expected=$1
|
||||||
|
|
||||||
if [ "$reply" = "$expected" ]; then
|
if [ "$reply" = "$expected" ]; then
|
||||||
echo "${FUNCNAME[1]}: ok"
|
echo "${FUNCNAME[1]}: ok"
|
||||||
else
|
else
|
||||||
exit_code='1'
|
exit_code=1
|
||||||
echo >&2 "${FUNCNAME[1]}: failed! Completion for \`${COMP_WORDS[*]}\` does not match."
|
echo >&2 "${FUNCNAME[1]}: failed! Completion for \`${COMP_WORDS[*]}\` does not match."
|
||||||
|
|
||||||
echo
|
echo
|
||||||
@ -34,33 +18,18 @@ reply_equals() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# --- Initial Setup ---
|
# --- Initial Setup ---
|
||||||
cdroot
|
|
||||||
source ./completions/just.bash
|
source ./completions/just.bash
|
||||||
|
cd tests/completions
|
||||||
|
cargo build
|
||||||
PATH="$(git rev-parse --show-toplevel)/target/debug:$PATH"
|
PATH="$(git rev-parse --show-toplevel)/target/debug:$PATH"
|
||||||
exit_code='0'
|
exit_code=0
|
||||||
|
|
||||||
# --- Tests ---
|
# --- Tests ---
|
||||||
|
|
||||||
test_just_is_accessible() {
|
|
||||||
if just --version > /dev/null; then
|
|
||||||
echo "${FUNCNAME[0]}: ok"
|
|
||||||
else
|
|
||||||
echo "${FUNCNAME[0]}: failed! Can't find just binary."
|
|
||||||
echo " PATH=$PATH"
|
|
||||||
echo
|
|
||||||
exit_code='1'
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
setup
|
|
||||||
test_just_is_accessible
|
|
||||||
|
|
||||||
test_complete_all_recipes() {
|
test_complete_all_recipes() {
|
||||||
COMP_WORDS=(just)
|
COMP_WORDS=(just)
|
||||||
COMP_CWORD=1 _just just
|
COMP_CWORD=1 _just just
|
||||||
reply_equals 'declare -a COMPREPLY=([0]="deploy" [1]="install" [2]="publish" [3]="push" [4]="test")'
|
reply_equals 'declare -a COMPREPLY=([0]="deploy" [1]="install" [2]="publish" [3]="push" [4]="test")'
|
||||||
}
|
}
|
||||||
cleanup
|
|
||||||
setup
|
|
||||||
test_complete_all_recipes
|
test_complete_all_recipes
|
||||||
|
|
||||||
test_complete_recipes_starting_with_i() {
|
test_complete_recipes_starting_with_i() {
|
||||||
@ -68,18 +37,13 @@ test_complete_recipes_starting_with_i() {
|
|||||||
COMP_CWORD=1 _just just
|
COMP_CWORD=1 _just just
|
||||||
reply_equals 'declare -a COMPREPLY=([0]="install")'
|
reply_equals 'declare -a COMPREPLY=([0]="install")'
|
||||||
}
|
}
|
||||||
cleanup
|
|
||||||
setup
|
|
||||||
test_complete_recipes_starting_with_i
|
test_complete_recipes_starting_with_i
|
||||||
|
|
||||||
test_complete_recipes_starting_with_p() {
|
test_complete_recipes_starting_with_p() {
|
||||||
setup
|
|
||||||
COMP_WORDS=(just p)
|
COMP_WORDS=(just p)
|
||||||
COMP_CWORD=1 _just just
|
COMP_CWORD=1 _just just
|
||||||
reply_equals 'declare -a COMPREPLY=([0]="publish" [1]="push")'
|
reply_equals 'declare -a COMPREPLY=([0]="publish" [1]="push")'
|
||||||
}
|
}
|
||||||
cleanup
|
|
||||||
setup
|
|
||||||
test_complete_recipes_starting_with_p
|
test_complete_recipes_starting_with_p
|
||||||
|
|
||||||
test_complete_recipes_from_subdirs() {
|
test_complete_recipes_from_subdirs() {
|
||||||
@ -87,16 +51,13 @@ test_complete_recipes_from_subdirs() {
|
|||||||
COMP_CWORD=1 _just just
|
COMP_CWORD=1 _just just
|
||||||
reply_equals 'declare -a COMPREPLY=([0]="subdir/special" [1]="subdir/surprise")'
|
reply_equals 'declare -a COMPREPLY=([0]="subdir/special" [1]="subdir/surprise")'
|
||||||
}
|
}
|
||||||
cleanup
|
|
||||||
setup
|
|
||||||
test_complete_recipes_from_subdirs
|
test_complete_recipes_from_subdirs
|
||||||
cleanup
|
|
||||||
|
|
||||||
# --- Conclusion ---
|
# --- Conclusion ---
|
||||||
|
if [ $exit_code = 0 ]; then
|
||||||
if [ "$exit_code" = '0' ]; then
|
|
||||||
echo "All tests passed."
|
echo "All tests passed."
|
||||||
else
|
else
|
||||||
echo "Some test[s] failed."
|
echo "Some test[s] failed."
|
||||||
fi
|
fi
|
||||||
exit "$exit_code"
|
|
||||||
|
exit $exit_code
|
||||||
|
Loading…
Reference in New Issue
Block a user