Tests for plugin installation via cli executable

This commit is contained in:
Bruno Sutic 2015-08-01 01:46:35 +02:00
parent 97e281608f
commit f8d259fe86
No known key found for this signature in database
GPG Key ID: 66D96E4F2F7EF26C
3 changed files with 126 additions and 19 deletions

View File

@ -35,6 +35,16 @@ check_dir_exists_helper() {
fi
}
# runs the scripts and asserts it has the correct output and exit code
script_run_helper() {
local script="$1"
local expected_output="$2"
local expected_exit_code="${3:-0}"
"$script" |
grep "$expected_output" >/dev/null 2>&1 && # grep -q flag quits the script early
[ "${PIPESTATUS[0]}" -eq "$expected_exit_code" ]
}
fail_helper() {
local message="$1"
echo "$message" >&2

View File

@ -4,7 +4,9 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $CURRENT_DIR/helpers.sh
test_plugin_installation() {
# TMUX KEY-BINDING TESTS
test_plugin_installation_via_tmux_key_binding() {
set_tmux_conf_helper <<- HERE
set -g @plugin "tmux-plugins/tmux-example-plugin"
run-shell "$PWD/tpm"
@ -12,16 +14,16 @@ test_plugin_installation() {
# opens tmux and test it with `expect`
"$CURRENT_DIR"/expect_successful_plugin_download ||
fail_helper "Tmux plugin installation fails"
fail_helper "[key-binding] plugin installation fails"
# check plugin dir exists after download
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "Plugin download fails"
fail_helper "[key-binding] plugin download fails"
teardown_helper
}
test_multiple_plugins_installation() {
test_multiple_plugins_installation_via_tmux_key_binding() {
set_tmux_conf_helper <<- HERE
set -g @plugin "tmux-plugins/tmux-example-plugin"
\ \ set -g @plugin 'tmux-plugins/tmux-copycat'
@ -30,21 +32,66 @@ test_multiple_plugins_installation() {
# opens tmux and test it with `expect`
"$CURRENT_DIR"/expect_successful_multiple_plugins_download ||
fail_helper "Tmux multiple plugins installation fails"
fail_helper "[key-binding] multiple plugins installation fails"
# check plugin dir exists after download
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "Plugin download fails (tmux-example-plugin)"
fail_helper "[key-binding] plugin download fails (tmux-example-plugin)"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-copycat/" ||
fail_helper "Plugin download fails (tmux-copycat)"
fail_helper "[key-binding] plugin download fails (tmux-copycat)"
teardown_helper
}
# SCRIPT TESTS
test_plugin_installation_via_script() {
set_tmux_conf_helper <<- HERE
set -g @plugin "tmux-plugins/tmux-example-plugin"
run-shell "$PWD/tpm"
HERE
script_run_helper "$PWD/bin/install_plugins" '"tmux-example-plugin" download success' ||
fail_helper "[script] plugin installation fails"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "[script] plugin download fails"
script_run_helper "$PWD/bin/install_plugins" 'Already installed "tmux-example-plugin"' ||
fail_helper "[script] plugin already installed message fail"
teardown_helper
}
test_multiple_plugins_installation_via_script() {
set_tmux_conf_helper <<- HERE
set -g @plugin "tmux-plugins/tmux-example-plugin"
\ \ set -g @plugin 'tmux-plugins/tmux-copycat'
run-shell "$PWD/tpm"
HERE
script_run_helper "$PWD/bin/install_plugins" '"tmux-example-plugin" download success' ||
fail_helper "[script] multiple plugins installation fails"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "[script] plugin download fails (tmux-example-plugin)"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-copycat/" ||
fail_helper "[script] plugin download fails (tmux-copycat)"
script_run_helper "$PWD/bin/install_plugins" 'Already installed "tmux-copycat"' ||
fail_helper "[script] multiple plugins already installed message fail"
teardown_helper
}
main() {
test_plugin_installation
test_multiple_plugins_installation
test_plugin_installation_via_tmux_key_binding
test_multiple_plugins_installation_via_tmux_key_binding
test_plugin_installation_via_script
test_multiple_plugins_installation_via_script
exit_value_helper
}
main

View File

@ -4,7 +4,9 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $CURRENT_DIR/helpers.sh
test_plugin_installation() {
# TMUX KEY-BINDING TESTS
test_plugin_installation_via_tmux_key_binding() {
set_tmux_conf_helper <<- HERE
set -g @tpm_plugins "tmux-plugins/tmux-example-plugin"
run-shell "$PWD/tpm"
@ -12,16 +14,16 @@ test_plugin_installation() {
# opens tmux and test it with `expect`
$CURRENT_DIR/expect_successful_plugin_download ||
fail_helper "Tmux plugin installation fails"
fail_helper "[key-binding] plugin installation fails"
# check plugin dir exists after download
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "Plugin download fails"
fail_helper "[key-binding] plugin download fails"
teardown_helper
}
test_legacy_and_new_syntax_for_plugin_installation_work() {
test_legacy_and_new_syntax_for_plugin_installation_work_via_tmux_key_binding() {
set_tmux_conf_helper <<- HERE
set -g @tpm_plugins " \
tmux-plugins/tmux-example-plugin \
@ -32,21 +34,69 @@ test_legacy_and_new_syntax_for_plugin_installation_work() {
# opens tmux and test it with `expect`
"$CURRENT_DIR"/expect_successful_multiple_plugins_download ||
fail_helper "Tmux multiple plugins installation fails"
fail_helper "[key-binding] multiple plugins installation fails"
# check plugin dir exists after download
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "Plugin download fails (tmux-example-plugin)"
fail_helper "[key-binding] plugin download fails (tmux-example-plugin)"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-copycat/" ||
fail_helper "Plugin download fails (tmux-copycat)"
fail_helper "[key-binding] plugin download fails (tmux-copycat)"
teardown_helper
}
# SCRIPT TESTS
test_plugin_installation_via_script() {
set_tmux_conf_helper <<- HERE
set -g @tpm_plugins "tmux-plugins/tmux-example-plugin"
run-shell "$PWD/tpm"
HERE
script_run_helper "$PWD/bin/install_plugins" '"tmux-example-plugin" download success' ||
fail_helper "[script] plugin installation fails"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "[script] plugin download fails"
script_run_helper "$PWD/bin/install_plugins" 'Already installed "tmux-example-plugin"' ||
fail_helper "[script] plugin already installed message fail"
teardown_helper
}
test_legacy_and_new_syntax_for_plugin_installation_work_via_script() {
set_tmux_conf_helper <<- HERE
set -g @tpm_plugins " \
tmux-plugins/tmux-example-plugin \
"
set -g @plugin 'tmux-plugins/tmux-copycat'
run-shell "$PWD/tpm"
HERE
script_run_helper "$PWD/bin/install_plugins" '"tmux-example-plugin" download success' ||
fail_helper "[script] multiple plugin installation fails"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-example-plugin/" ||
fail_helper "[script] plugin download fails (tmux-example-plugin)"
check_dir_exists_helper "$HOME/.tmux/plugins/tmux-copycat/" ||
fail_helper "[script] plugin download fails (tmux-copycat)"
script_run_helper "$PWD/bin/install_plugins" 'Already installed "tmux-copycat"' ||
fail_helper "[script] multiple plugins already installed message fail"
teardown_helper
}
main() {
test_plugin_installation
test_legacy_and_new_syntax_for_plugin_installation_work
test_plugin_installation_via_tmux_key_binding
test_legacy_and_new_syntax_for_plugin_installation_work_via_tmux_key_binding
test_plugin_installation_via_script
test_legacy_and_new_syntax_for_plugin_installation_work_via_script
exit_value_helper
}
main