Files
dokku-mongo/tests/service_import.bats
2015-09-15 22:38:19 +02:00

38 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bats
load test_helper
setup() {
export ECHO_DOCKER_COMMAND="false"
dokku "$PLUGIN_COMMAND_PREFIX:create" l >&2
echo "data" > "$PLUGIN_DATA_ROOT/fake.dump.tar"
}
teardown() {
export ECHO_DOCKER_COMMAND="false"
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" l >&2
rm -f "$PLUGIN_DATA_ROOT/fake.dump.tar"
}
@test "($PLUGIN_COMMAND_PREFIX:import) error when there are no arguments" {
run dokku "$PLUGIN_COMMAND_PREFIX:import"
assert_contains "${lines[*]}" "Please specify a name for the service"
}
@test "($PLUGIN_COMMAND_PREFIX:import) error when service does not exist" {
run dokku "$PLUGIN_COMMAND_PREFIX:import" not_existing_service
assert_contains "${lines[*]}" "service not_existing_service does not exist"
}
@test "($PLUGIN_COMMAND_PREFIX:import) error when data is not provided" {
run dokku "$PLUGIN_COMMAND_PREFIX:import" l
assert_contains "${lines[*]}" "No data provided on stdin"
}
@test "($PLUGIN_COMMAND_PREFIX:import) success" {
export ECHO_DOCKER_COMMAND="true"
run dokku "$PLUGIN_COMMAND_PREFIX:import" l < "$PLUGIN_DATA_ROOT/fake.dump.tar"
password="$(cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
assert_output "docker exec -i dokku.mongo.l bash -c DIR=\$(mktemp -d) && tar xf - -C \"\$DIR\" && mongorestore -d l -u \"l\" -p \"$password\" --authenticationDatabase \"l\" \$(find \"\$DIR\" -mindepth 1 -maxdepth 1 -type d | head -n1) && rm -rf \"\$DIR\""
}