143 lines
4.8 KiB
Bash
Executable File
143 lines
4.8 KiB
Bash
Executable File
#!/usr/bin/env bats
|
|
load test_helper
|
|
|
|
setup() {
|
|
dokku "$PLUGIN_COMMAND_PREFIX:create" ls
|
|
dokku "$PLUGIN_COMMAND_PREFIX:create" ms
|
|
dokku apps:create my-app
|
|
}
|
|
|
|
teardown() {
|
|
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" ms
|
|
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" ls
|
|
dokku --force apps:destroy my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) error when there are no arguments" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_contains "${lines[*]}" "Please specify a valid name for the service"
|
|
assert_failure
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) error when the app argument is missing" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link" ls
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_contains "${lines[*]}" "Please specify an app to run the command on"
|
|
assert_failure
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) error when the app does not exist" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link" ls not_existing_app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_contains "${lines[*]}" "App not_existing_app does not exist"
|
|
assert_failure
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) error when the service does not exist" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link" not_existing_service my-app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_contains "${lines[*]}" "service not_existing_service does not exist"
|
|
assert_failure
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) error when the service is already linked to app" {
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_contains "${lines[*]}" "Already linked as DATABASE_URL"
|
|
assert_failure
|
|
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) exports DATABASE_URL to app" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
url=$(dokku config:get my-app DATABASE_URL)
|
|
password="$(sudo cat "$PLUGIN_DATA_ROOT/ls/PASSWORD")"
|
|
assert_contains "$url" "mysql://mysql:$password@dokku-mysql-ls:3306/ls"
|
|
assert_success
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) generates an alternate config url when DATABASE_URL already in use" {
|
|
dokku config:set my-app DATABASE_URL=mysql://user:pass@host:3306/db
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app
|
|
run dokku config my-app
|
|
assert_contains "${lines[*]}" "DOKKU_MYSQL_AQUA_URL"
|
|
assert_success
|
|
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" ms my-app
|
|
run dokku config my-app
|
|
assert_contains "${lines[*]}" "DOKKU_MYSQL_BLACK_URL"
|
|
assert_success
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ms my-app
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) links to app with docker-options" {
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app
|
|
run dokku docker-options:report my-app
|
|
assert_contains "${lines[*]}" "--link dokku.mysql.ls:dokku-mysql-ls"
|
|
assert_success
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) uses apps MYSQL_DATABASE_SCHEME variable" {
|
|
dokku config:set my-app MYSQL_DATABASE_SCHEME=mysql2
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app
|
|
url=$(dokku config:get my-app DATABASE_URL)
|
|
password="$(sudo cat "$PLUGIN_DATA_ROOT/ls/PASSWORD")"
|
|
assert_contains "$url" "mysql2://mysql:$password@dokku-mysql-ls:3306/ls"
|
|
assert_success
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) adds a querystring" {
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app --querystring "pool=5"
|
|
url=$(dokku config:get my-app DATABASE_URL)
|
|
assert_contains "$url" "?pool=5"
|
|
assert_success
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) uses a specified config url when alias is specified" {
|
|
dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app --alias "ALIAS"
|
|
url=$(dokku config:get my-app ALIAS_URL)
|
|
password="$(sudo cat "$PLUGIN_DATA_ROOT/ls/PASSWORD")"
|
|
assert_contains "$url" "mysql://mysql:$password@dokku-mysql-ls:3306/ls"
|
|
assert_success
|
|
dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
}
|
|
|
|
@test "($PLUGIN_COMMAND_PREFIX:link) respects --no-restart" {
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Skipping restart of linked app" 0
|
|
assert_success
|
|
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:link" ls my-app --no-restart
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Skipping restart of linked app"
|
|
assert_success
|
|
|
|
run dokku "$PLUGIN_COMMAND_PREFIX:unlink" ls my-app
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
}
|