mirror of
https://github.com/dokku/dokku.git
synced 2025-12-29 00:25:08 +01:00
186 lines
5.6 KiB
Bash
186 lines
5.6 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load test_helper
|
|
|
|
setup() {
|
|
global_setup
|
|
create_app
|
|
rm -rf "$DOKKU_LIB_ROOT/data/storage/rdmtestapp*"
|
|
}
|
|
|
|
teardown() {
|
|
destroy_app
|
|
global_teardown
|
|
}
|
|
|
|
@test "(storage) storage:help" {
|
|
run /bin/bash -c "dokku storage"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Manage mounted volumes"
|
|
help_output="$output"
|
|
|
|
run /bin/bash -c "dokku storage:help"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output_contains "Manage mounted volumes"
|
|
assert_output "$help_output"
|
|
}
|
|
|
|
@test "(storage) storage:ensure-directory" {
|
|
run /bin/bash -c "test -d $DOKKU_LIB_ROOT/data/storage/$TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory @"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory $TEST_APP/"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory $TEST_APP/$TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_failure
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting directory ownership to 1000:1000" 0
|
|
assert_output_contains "Setting directory ownership to 2000:2000" 0
|
|
assert_output_contains "Setting directory ownership to 32767:32767" 1
|
|
|
|
run /bin/bash -c "test -d $DOKKU_LIB_ROOT/data/storage/$TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory --chown false $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting directory ownership to 1000:1000" 0
|
|
assert_output_contains "Setting directory ownership to 2000:2000" 0
|
|
assert_output_contains "Setting directory ownership to 32767:32767" 0
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory $TEST_APP --chown false"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting directory ownership to 1000:1000" 0
|
|
assert_output_contains "Setting directory ownership to 2000:2000" 0
|
|
assert_output_contains "Setting directory ownership to 32767:32767" 0
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory --chown heroku $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting directory ownership to 1000:1000" 1
|
|
assert_output_contains "Setting directory ownership to 2000:2000" 0
|
|
assert_output_contains "Setting directory ownership to 32767:32767" 0
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory --chown packeto $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting directory ownership to 1000:1000" 0
|
|
assert_output_contains "Setting directory ownership to 2000:2000" 1
|
|
assert_output_contains "Setting directory ownership to 32767:32767" 0
|
|
|
|
run /bin/bash -c "dokku storage:ensure-directory --chown herokuish $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_contains "Setting directory ownership to 1000:1000" 0
|
|
assert_output_contains "Setting directory ownership to 2000:2000" 0
|
|
assert_output_contains "Setting directory ownership to 32767:32767" 1
|
|
}
|
|
|
|
@test "(storage) storage:mount, storage:list, storage:umount" {
|
|
run /bin/bash -c "dokku storage:mount $TEST_APP /tmp/mount:/mount"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet storage:list $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "/tmp/mount:/mount"
|
|
|
|
run /bin/bash -c "dokku storage:list $TEST_APP --format json | jq -r '. | length'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "1"
|
|
|
|
run /bin/bash -c "dokku storage:list $TEST_APP --format json | jq -r '.[].host_path'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "/tmp/mount"
|
|
|
|
run /bin/bash -c "dokku storage:list $TEST_APP --format json | jq -r '.[].container_path'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "/mount"
|
|
|
|
run /bin/bash -c "dokku storage:list $TEST_APP --format json | jq -r '.[].volume_options'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_exists
|
|
|
|
run /bin/bash -c "dokku storage:mount $TEST_APP /tmp/mount:/mount"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output " ! Mount path already exists."
|
|
assert_failure
|
|
|
|
run /bin/bash -c "dokku storage:unmount $TEST_APP /tmp/mount:/mount"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet storage:list $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output_not_exists
|
|
|
|
run /bin/bash -c "dokku storage:list $TEST_APP --format json | jq -r '. | length'"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "0"
|
|
|
|
run /bin/bash -c "dokku storage:unmount $TEST_APP /tmp/mount:/mount"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_output " ! Mount path does not exist."
|
|
assert_failure
|
|
|
|
run /bin/bash -c "dokku storage:mount $TEST_APP mount_volume:/mount"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
|
|
run /bin/bash -c "dokku --quiet storage:list $TEST_APP"
|
|
echo "output: $output"
|
|
echo "status: $status"
|
|
assert_success
|
|
assert_output "mount_volume:/mount"
|
|
}
|