Files
dokku/tests/unit/app-json-2.bats
Jose Diaz-Gonzalez 5846301a48 tests: make it possible to specify an alternative base domain for tests
When developing Dokku, it is useful to use a real domain to test actual functionality. This is impossible if the domain is hardcoded to dokku.me in testing.
2023-08-05 20:58:26 -04:00

68 lines
1.8 KiB
Bash

#!/usr/bin/env bats
load test_helper
setup() {
global_setup
create_app
}
teardown() {
destroy_app
global_teardown
}
@test "(app-json) app.json dockerfile cmd" {
run deploy_app dockerfile-procfile
echo "output: $output"
echo "status: $status"
assert_success
run docker inspect "dokku/${TEST_APP}:latest" --format "{{json .Config.Cmd}}"
echo "output: $output"
echo "status: $status"
assert_success
assert_output '["/bin/sh","-c","npm start"]'
run docker inspect "dokku/${TEST_APP}:latest" --format "{{json .Config.Entrypoint}}"
echo "output: $output"
echo "status: $status"
assert_success
assert_output '["docker-entrypoint.sh"]'
}
@test "(app-json) app.json dockerfile release" {
run /bin/bash -c "dokku config:set --no-restart $TEST_APP SECRET_KEY=fjdkslafjdk ENVIRONMENT=dev DATABASE_URL=sqlite:///db.sqlite3"
echo "output: $output"
echo "status: $status"
assert_success
run deploy_app dockerfile-release
echo "output: $output"
echo "status: $status"
assert_output_contains "Executing release task from Procfile"
assert_output_contains "SECRET_KEY: fjdkslafjdk"
assert_success
}
@test "(app-json) app.json dockerfile entrypoint release" {
run deploy_app dockerfile-entrypoint "dokku@$DOKKU_DOMAIN:$TEST_APP" add_release_command
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "touch /app/release.test" 2
}
@test "(app-json) app.json dockerfile entrypoint predeploy" {
run deploy_app dockerfile-entrypoint
echo "output: $output"
echo "status: $status"
assert_output_contains "Executing predeploy task from app.json"
assert_output_contains "entrypoint script started with arguments touch /app/predeploy.test"
assert_success
run /bin/bash -c "dokku run $TEST_APP ls /app/predeploy.test"
echo "output: $output"
echo "status: $status"
assert_success
}