diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c0bb83..ba4c489 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - refactor `shared_set_tpm_path_constant` function - move all instructions to `docs/` dir - add `bin/install_plugins` cli executable script +- improved test runner function ### v2.0.0, 2015-07-07 - enable overriding default key bindings diff --git a/tests/helpers.sh b/tests/helpers.sh index 122347a..3bc0cfa 100644 --- a/tests/helpers.sh +++ b/tests/helpers.sh @@ -63,3 +63,11 @@ exit_value_helper() { exit 0 fi } + +run_tests() { + # get all the functions starting with 'test_' and invoke them + for test in $(compgen -A function | grep "^test_"); do + "$test" + done + exit_value_helper +} diff --git a/tests/test_plugin_clean.sh b/tests/test_plugin_clean.sh index d47564a..af6c660 100755 --- a/tests/test_plugin_clean.sh +++ b/tests/test_plugin_clean.sh @@ -27,8 +27,4 @@ test_plugin_installation() { teardown_helper } -main() { - test_plugin_installation - exit_value_helper -} -main +run_tests diff --git a/tests/test_plugin_installation.sh b/tests/test_plugin_installation.sh index 3953a84..2aaf1fa 100755 --- a/tests/test_plugin_installation.sh +++ b/tests/test_plugin_installation.sh @@ -4,6 +4,8 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" PLUGINS_DIR="$HOME/.tmux/plugins" TPM_DIR="$PWD" +CUSTOM_PLUGINS_DIR="$HOME/foo/plugins" + source "$CURRENT_DIR/helpers.sh" # TMUX KEY-BINDING TESTS @@ -14,17 +16,33 @@ test_plugin_installation_via_tmux_key_binding() { run-shell "$TPM_DIR/tpm" HERE - # opens tmux and test it with `expect` - "$CURRENT_DIR"/expect_successful_plugin_download || + "$CURRENT_DIR/expect_successful_plugin_download" || fail_helper "[key-binding] plugin installation fails" - # check plugin dir exists after download check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || fail_helper "[key-binding] plugin download fails" teardown_helper } +test_plugin_installation_custom_dir_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR' + + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + "$CURRENT_DIR/expect_successful_plugin_download" || + fail_helper "[key-binding][custom dir] plugin installation fails" + + check_dir_exists_helper "$CUSTOM_PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding][custom dir] plugin download fails" + + teardown_helper + rm -rf "$CUSTOM_PLUGINS_DIR" +} + test_multiple_plugins_installation_via_tmux_key_binding() { set_tmux_conf_helper <<- HERE set -g @plugin "tmux-plugins/tmux-example-plugin" @@ -33,7 +51,7 @@ test_multiple_plugins_installation_via_tmux_key_binding() { HERE # opens tmux and test it with `expect` - "$CURRENT_DIR"/expect_successful_multiple_plugins_download || + "$CURRENT_DIR/expect_successful_multiple_plugins_download" || fail_helper "[key-binding] multiple plugins installation fails" check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || @@ -65,6 +83,27 @@ test_plugin_installation_via_script() { teardown_helper } +test_plugin_installation_custom_dir_via_script() { + set_tmux_conf_helper <<- HERE + set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR' + + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' || + fail_helper "[script][custom dir] plugin installation fails" + + check_dir_exists_helper "$CUSTOM_PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script][custom dir] plugin download fails" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-example-plugin"' || + fail_helper "[script][custom dir] plugin already installed message fail" + + teardown_helper + rm -rf "$CUSTOM_PLUGINS_DIR" +} + test_multiple_plugins_installation_via_script() { set_tmux_conf_helper <<- HERE set -g @plugin "tmux-plugins/tmux-example-plugin" @@ -87,13 +126,4 @@ test_multiple_plugins_installation_via_script() { teardown_helper } -main() { - 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 +run_tests diff --git a/tests/test_plugin_installation_legacy.sh b/tests/test_plugin_installation_legacy.sh index d0bf375..f14725f 100755 --- a/tests/test_plugin_installation_legacy.sh +++ b/tests/test_plugin_installation_legacy.sh @@ -92,13 +92,4 @@ test_legacy_and_new_syntax_for_plugin_installation_work_via_script() { teardown_helper } -main() { - 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 +run_tests diff --git a/tests/test_plugin_sourcing.sh b/tests/test_plugin_sourcing.sh index 73956c7..b77c07f 100755 --- a/tests/test_plugin_sourcing.sh +++ b/tests/test_plugin_sourcing.sh @@ -28,8 +28,4 @@ test_plugin_sourcing() { teardown_helper } -main() { - test_plugin_sourcing - exit_value_helper -} -main +run_tests diff --git a/tests/test_plugin_update.sh b/tests/test_plugin_update.sh index bc9e8e2..b70fca8 100755 --- a/tests/test_plugin_update.sh +++ b/tests/test_plugin_update.sh @@ -30,8 +30,4 @@ test_plugin_installation() { teardown_helper } -main() { - test_plugin_installation - exit_value_helper -} -main +run_tests