This change makes password authentication required for redis usage, and removes anonymous access. Users will need to change their underlying clients to enable writing the auth token for authenticating, otherwise requests will fail. This is a non-optional change, and improves security for users who wish to expose their redis installations outside of their network.
64 lines
2.5 KiB
Bash
Executable File
64 lines
2.5 KiB
Bash
Executable File
#!/usr/bin/env bats
|
|
load test_helper
|
|
|
|
setup() {
|
|
dokku "$PLUGIN_COMMAND_PREFIX:create" l >&2
|
|
dokku apps:create my_app >&2
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" l my_app
|
|
}
|
|
|
|
teardown() {
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" l my_app
|
|
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" l >&2
|
|
rm "$DOKKU_ROOT/my_app" -rf
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) error when there are no arguments" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:promote"
|
|
assert_contains "${lines[*]}" "Please specify a name for the service"
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) error when the app argument is missing" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:promote" l
|
|
assert_contains "${lines[*]}" "Please specify an app to run the command on"
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) error when the app does not exist" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:promote" l not_existing_app
|
|
assert_contains "${lines[*]}" "App not_existing_app does not exist"
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) error when the service does not exist" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:promote" not_existing_service my_app
|
|
assert_contains "${lines[*]}" "service not_existing_service does not exist"
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) error when the service is already promoted" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:promote" l my_app
|
|
assert_contains "${lines[*]}" "already promoted as REDIS_URL"
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) changes REDIS_URL" {
|
|
password="$(cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
|
dokku config:set my_app "REDIS_URL=redis://u:p@host:6379/db" "DOKKU_REDIS_BLUE_URL=redis://l:$password@dokku-redis-l:6379"
|
|
dokku "$PLUGIN_COMMAND_PREFIX:promote" l my_app
|
|
url=$(dokku config:get my_app REDIS_URL)
|
|
assert_equal "$url" "redis://l:$password@dokku-redis-l:6379"
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) creates new config url when needed" {
|
|
password="$(cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
|
dokku config:set my_app "REDIS_URL=redis://u:p@host:6379/db" "DOKKU_REDIS_BLUE_URL=redis://l:$password@dokku-redis-l:6379"
|
|
dokku "$PLUGIN_COMMAND_PREFIX:promote" l my_app
|
|
run dokku config my_app
|
|
assert_contains "${lines[*]}" "DOKKU_REDIS_"
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:promote) uses REDIS_DATABASE_SCHEME variable" {
|
|
password="$(cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
|
|
dokku config:set my_app "REDIS_DATABASE_SCHEME=redis2" "REDIS_URL=redis://u:p@host:6379" "DOKKU_REDIS_BLUE_URL=redis2://l:$password@dokku-redis-l:6379"
|
|
dokku "$PLUGIN_COMMAND_PREFIX:promote" l my_app
|
|
url=$(dokku config:get my_app REDIS_URL)
|
|
assert_equal "$url" "redis2://l:$password@dokku-redis-l:6379"
|
|
}
|