2015-09-09 18:27:42 -07:00
|
|
|
#!/usr/bin/env bats
|
|
|
|
|
|
|
|
|
|
load test_helper
|
|
|
|
|
|
2016-08-25 09:17:26 -07:00
|
|
|
setup() {
|
|
|
|
|
global_setup
|
2019-04-23 15:23:35 +07:00
|
|
|
clone_test_plugin
|
2016-08-25 09:17:26 -07:00
|
|
|
}
|
|
|
|
|
|
2015-09-09 18:27:42 -07:00
|
|
|
teardown() {
|
|
|
|
|
remove_test_plugin || true
|
2016-08-25 09:17:26 -07:00
|
|
|
global_teardown
|
2015-09-09 18:27:42 -07:00
|
|
|
}
|
|
|
|
|
|
2020-02-10 01:56:50 -05:00
|
|
|
@test "(plugin) plugin:help" {
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_output_contains "Manage installed plugins"
|
|
|
|
|
help_output="$output"
|
|
|
|
|
|
2020-02-10 01:56:50 -05:00
|
|
|
run /bin/bash -c "dokku plugin:help"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_output_contains "Manage installed plugins"
|
2020-02-10 05:04:19 -05:00
|
|
|
assert_output "$help_output"
|
2020-02-10 01:56:50 -05:00
|
|
|
}
|
|
|
|
|
|
2016-01-05 10:43:19 -08:00
|
|
|
@test "(plugin) plugin:install, plugin:disable, plugin:update plugin:uninstall" {
|
2020-04-01 11:48:28 -04:00
|
|
|
run /bin/bash -c "dokku plugin:installed $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2021-01-17 22:23:04 -05:00
|
|
|
assert_failure
|
2020-04-01 11:48:28 -04:00
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "dokku plugin:install $TEST_PLUGIN_GIT_REPO --name $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2016-01-05 10:43:19 -08:00
|
|
|
assert_success
|
|
|
|
|
|
2020-04-01 11:48:28 -04:00
|
|
|
run /bin/bash -c "dokku plugin:installed $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2021-01-17 22:23:04 -05:00
|
|
|
assert_success
|
2020-04-01 11:48:28 -04:00
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "dokku plugin:update $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-09-09 18:27:42 -07:00
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep enabled | grep $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-09-09 18:27:42 -07:00
|
|
|
assert_success
|
|
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "sudo -E -u nobody dokku plugin:uninstall $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-12-22 11:10:49 -08:00
|
|
|
assert_failure
|
2019-04-23 15:23:35 +07:00
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:disable $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep disabled | grep $TEST_PLUGIN_NAME"
|
2019-04-23 15:23:35 +07:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:uninstall $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep $TEST_PLUGIN_NAME"
|
2019-04-23 15:23:35 +07:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_failure
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@test "(plugin) plugin:install, plugin:disable, plugin:update plugin:uninstall (with file://)" {
|
|
|
|
|
run /bin/bash -c "dokku plugin:install file://$TEST_PLUGIN_LOCAL_REPO --name $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:update $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep enabled | grep $TEST_PLUGIN_NAME"
|
2019-04-23 15:23:35 +07:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "sudo -E -u nobody dokku plugin:uninstall $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_failure
|
2015-12-22 11:10:49 -08:00
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "dokku plugin:disable $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-09-09 18:27:42 -07:00
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep disabled | grep $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-09-09 18:27:42 -07:00
|
|
|
assert_success
|
|
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "dokku plugin:uninstall $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-09-09 18:27:42 -07:00
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-09-09 18:27:42 -07:00
|
|
|
assert_failure
|
|
|
|
|
}
|
2015-12-22 11:10:49 -08:00
|
|
|
|
2016-01-05 10:43:19 -08:00
|
|
|
@test "(plugin) plugin:install plugin:update (with tag)" {
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "dokku plugin:install $TEST_PLUGIN_GIT_REPO --committish v0.2.0 --name $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2016-01-05 10:43:19 -08:00
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep enabled | grep $TEST_PLUGIN_NAME | grep 0.2.0"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2016-01-05 10:43:19 -08:00
|
|
|
assert_success
|
|
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "dokku plugin:update $TEST_PLUGIN_NAME v0.3.0"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2016-01-05 10:43:19 -08:00
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep enabled | grep $TEST_PLUGIN_NAME | grep 0.2.0"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2016-01-05 10:43:19 -08:00
|
|
|
assert_failure
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep enabled | grep $TEST_PLUGIN_NAME | grep 0.3.0"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2016-01-05 10:43:19 -08:00
|
|
|
assert_success
|
|
|
|
|
}
|
|
|
|
|
|
2015-12-22 11:10:49 -08:00
|
|
|
@test "(plugin) plugin:install, plugin:disable, plugin:uninstall as non-root user failure" {
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "sudo -E -u nobody dokku plugin:install $TEST_PLUGIN_GIT_REPO"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-12-22 11:10:49 -08:00
|
|
|
assert_failure
|
|
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "dokku plugin:install $TEST_PLUGIN_GIT_REPO"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-12-22 11:10:49 -08:00
|
|
|
assert_success
|
|
|
|
|
|
2020-02-10 05:04:19 -05:00
|
|
|
run /bin/bash -c "dokku plugin:list | grep enabled | grep $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-12-22 11:10:49 -08:00
|
|
|
assert_success
|
|
|
|
|
|
2018-12-27 08:35:07 -05:00
|
|
|
run /bin/bash -c "sudo -E -u nobody dokku plugin:disable $TEST_PLUGIN_NAME"
|
2018-12-27 09:02:39 -05:00
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
2015-12-22 11:10:49 -08:00
|
|
|
assert_failure
|
|
|
|
|
}
|
2020-07-17 14:37:59 -04:00
|
|
|
|
|
|
|
|
@test "(plugin) plugin:install permissions set properly" {
|
|
|
|
|
run /bin/bash -c "ls -lah /var/lib/dokku/core-plugins/available/git/commands"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
assert_output_contains "root" "0"
|
|
|
|
|
assert_output_contains "dokku" "3"
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "chown -R root:root /var/lib/dokku/core-plugins/available/git"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "ls -lah /var/lib/dokku/core-plugins/available/git/commands"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
assert_output_contains "root" "2"
|
|
|
|
|
assert_output_contains "dokku" "1"
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:install"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "ls -lah /var/lib/dokku/core-plugins/available/git/commands"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
assert_output_contains "root" "0"
|
|
|
|
|
assert_output_contains "dokku" "3"
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-18 00:29:10 -05:00
|
|
|
@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"
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-17 22:23:04 -05:00
|
|
|
@test "(plugin) plugin:update [errors]" {
|
|
|
|
|
run /bin/bash -c "dokku plugin:install $TEST_PLUGIN_GIT_REPO --name $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:disable $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:update $TEST_PLUGIN_NAME"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_failure
|
|
|
|
|
assert_output_contains "Specified plugin not enabled or installed"
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:update invalid"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_failure
|
|
|
|
|
assert_output_contains "Specified plugin not enabled or installed"
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:update $TEST_PLUGIN_GIT_REPO"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_failure
|
|
|
|
|
assert_output_contains "Invalid plugin name specified"
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:update app-json"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_failure
|
|
|
|
|
assert_output_contains "please update Dokku instead"
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-17 14:37:59 -04:00
|
|
|
@test "(plugin) plugin:update permissions set properly" {
|
|
|
|
|
run /bin/bash -c "ls -lah /var/lib/dokku/core-plugins/available/git/commands"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
assert_output_contains "root" "0"
|
|
|
|
|
assert_output_contains "dokku" "3"
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "chown -R root:root /var/lib/dokku/core-plugins/available/git"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "ls -lah /var/lib/dokku/core-plugins/available/git/commands"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
assert_output_contains "root" "2"
|
|
|
|
|
assert_output_contains "dokku" "1"
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "dokku plugin:update"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
|
|
|
|
|
run /bin/bash -c "ls -lah /var/lib/dokku/core-plugins/available/git/commands"
|
|
|
|
|
echo "output: $output"
|
|
|
|
|
echo "status: $status"
|
|
|
|
|
assert_success
|
|
|
|
|
assert_output_contains "root" "0"
|
|
|
|
|
assert_output_contains "dokku" "3"
|
|
|
|
|
}
|