From e39a5663bf26054bf26c4e1ecb432d515d5b3d46 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 18 Jan 2021 00:29:10 -0500 Subject: [PATCH] fix: add error message for invalid flags Closes #4193 --- plugins/plugin/subcommands/install | 6 +++++ tests/unit/plugin.bats | 38 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/plugins/plugin/subcommands/install b/plugins/plugin/subcommands/install index 64351ad09..ab3db3354 100755 --- a/plugins/plugin/subcommands/install +++ b/plugins/plugin/subcommands/install @@ -21,6 +21,12 @@ cmd-plugin-install() { plugn trigger install ;; *) + if [[ -n "$FLAG" ]]; then + dokku_log_warn "First argument must be --core or url to plugin" + dokku_log_warn "Valid prefixes: https:, git:, ssh:, file:" + dokku_log_warn "Valid suffixes: .tar.gz, .tgz" + dokku_log_fail "Please retry with valid arguments" + fi plugn trigger install ;; esac diff --git a/tests/unit/plugin.bats b/tests/unit/plugin.bats index 8bea7e2b9..10761acf8 100644 --- a/tests/unit/plugin.bats +++ b/tests/unit/plugin.bats @@ -214,6 +214,44 @@ teardown() { assert_output_contains "dokku" "3" } +@test "(plugin) plugin:install [errors]" { + run /bin/bash -c "dokku plugin:install YABBA_DABBA_DOO XXXX YYYY" + echo "output: $output" + echo "status: $status" + assert_failure + assert_output_contains "Please retry with valid arguments" + + run /bin/bash -c "dokku plugin:install ZXZX --random-flag" + echo "output: $output" + echo "status: $status" + assert_failure + assert_output_contains "Please retry with valid arguments" + + run /bin/bash -c "dokku plugin:install http://www.example.com/ --random-flag" + echo "output: $output" + echo "status: $status" + assert_failure + assert_output_contains "Please retry with valid arguments" + + run /bin/bash -c "dokku plugin:install http://www.example.com/gives-a-404" + echo "output: $output" + echo "status: $status" + assert_failure + assert_output_contains "Please retry with valid arguments" + + run /bin/bash -c "dokku plugin:install http://xxxx/ --random-flag" + echo "output: $output" + echo "status: $status" + assert_failure + assert_output_contains "Please retry with valid arguments" + + run /bin/bash -c "dokku plugin:install /path/to/nonexistent/dir" + echo "output: $output" + echo "status: $status" + assert_failure + assert_output_contains "Please retry with valid arguments" +} + @test "(plugin) plugin:update [errors]" { run /bin/bash -c "dokku plugin:install $TEST_PLUGIN_GIT_REPO --name $TEST_PLUGIN_NAME" echo "output: $output"