Merge pull request #6 from Flink/lg-import-export-clone
Implement `export`, `import` and `clone` commands
This commit is contained in:
42
tests/service_clone.bats
Executable file
42
tests/service_clone.bats
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bats
|
||||
load test_helper
|
||||
|
||||
setup() {
|
||||
export ECHO_DOCKER_COMMAND="false"
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:create" l >&2
|
||||
}
|
||||
|
||||
teardown() {
|
||||
export ECHO_DOCKER_COMMAND="false"
|
||||
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" l >&2
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:clone) error when there are no arguments" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone"
|
||||
assert_contains "${lines[*]}" "Please specify a name for the service"
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:clone) error when service does not exist" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone" not_existing_service new_service
|
||||
assert_contains "${lines[*]}" "service not_existing_service does not exist"
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:clone) error when new service isn't provided" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l
|
||||
assert_contains "${lines[*]}" "Please specify a name for the new service"
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:clone) error when new service already exists" {
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:create" new_service
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l new_service
|
||||
assert_contains "${lines[*]}" "service new_service already exists"
|
||||
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" new_service
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:clone) success" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:clone" l new_service
|
||||
[[ -f $PLUGIN_DATA_ROOT/new_service/ID ]]
|
||||
assert_contains "${lines[*]}" "Copying data from l to new_service"
|
||||
assert_contains "${lines[*]}" "Done"
|
||||
}
|
||||
|
||||
29
tests/service_export.bats
Executable file
29
tests/service_export.bats
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bats
|
||||
load test_helper
|
||||
|
||||
setup() {
|
||||
export ECHO_DOCKER_COMMAND="false"
|
||||
dokku "$PLUGIN_COMMAND_PREFIX:create" l >&2
|
||||
}
|
||||
|
||||
teardown() {
|
||||
export ECHO_DOCKER_COMMAND="false"
|
||||
dokku --force "$PLUGIN_COMMAND_PREFIX:destroy" l >&2
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:export) error when there are no arguments" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:export"
|
||||
assert_contains "${lines[*]}" "Please specify a name for the service"
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:export) error when service does not exist" {
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:export" not_existing_service
|
||||
assert_contains "${lines[*]}" "service not_existing_service does not exist"
|
||||
}
|
||||
|
||||
@test "($PLUGIN_COMMAND_PREFIX:export) success" {
|
||||
export ECHO_DOCKER_COMMAND="true"
|
||||
run dokku "$PLUGIN_COMMAND_PREFIX:export" l
|
||||
assert_output "docker exec dokku.mongo.l bash -c DIR=\$(mktemp -d) && mongodump -d l -o=\"\$DIR\" && tar cf - -C \"\$DIR\" . && rm -rf \"\$DIR\""
|
||||
}
|
||||
|
||||
36
tests/service_import.bats
Executable file
36
tests/service_import.bats
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/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"
|
||||
assert_output "docker exec -i dokku.mongo.l bash -c DIR=\$(mktemp -d) && tar xf - -C \"\$DIR\" && mongorestore -d l \$(find \"\$DIR\" -mindepth 1 -maxdepth 1 -type d | head -n1) && rm -rf \"\$DIR\""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user