tests: add tests for functionality

This commit is contained in:
Jose Diaz-Gonzalez
2025-11-16 18:01:20 -05:00
parent 3f5a022970
commit ff8ccd2801
5 changed files with 280 additions and 0 deletions

View File

@@ -147,3 +147,72 @@ teardown() {
echo "status: $status"
assert_output "http:80:5000 https:443:5000"
}
@test "(caddy) label management" {
run /bin/bash -c "dokku proxy:set $TEST_APP caddy"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku caddy:label:add $TEST_APP caddy.directive value"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku caddy:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "caddy.directive=value"
run /bin/bash -c "dokku caddy:label:show $TEST_APP caddy.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku caddy:label:show $TEST_APP caddy.directive2"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run deploy_app
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"caddy.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku caddy:label:remove $TEST_APP caddy.directive"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku caddy:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "caddy.directive=value"
run /bin/bash -c "dokku caddy:label:show $TEST_APP caddy.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"caddy.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
}

View File

@@ -172,3 +172,72 @@ teardown() {
echo "status: $status"
assert_output "http:80:5000 https:443:5000"
}
@test "(haproxy) label management" {
run /bin/bash -c "dokku proxy:set $TEST_APP haproxy"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku haproxy:label:add $TEST_APP haproxy.directive value"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku haproxy:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "haproxy.directive=value"
run /bin/bash -c "dokku haproxy:label:show $TEST_APP haproxy.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku haproxy:label:show $TEST_APP haproxy.directive2"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run deploy_app
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"haproxy.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku haproxy:label:remove $TEST_APP haproxy.directive"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku haproxy:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "haproxy.directive=value"
run /bin/bash -c "dokku haproxy:label:show $TEST_APP haproxy.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"haproxy.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
}

View File

@@ -245,6 +245,75 @@ teardown() {
assert_output_contains "charset UTF-8;"
}
@test "(openresty) label management" {
run /bin/bash -c "dokku proxy:set $TEST_APP openresty"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku openresty:label:add $TEST_APP openresty.directive value"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku openresty:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "openresty.directive=value"
run /bin/bash -c "dokku openresty:label:show $TEST_APP openresty.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku openresty:label:show $TEST_APP openresty.directive2"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run deploy_app
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"openresty.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku openresty:label:remove $TEST_APP openresty.directive"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku openresty:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "openresty.directive=value"
run /bin/bash -c "dokku openresty:label:show $TEST_APP openresty.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"openresty.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
}
add_openresty_include() {
local APP="$1"
local APP_REPO_DIR="$2"

View File

@@ -151,6 +151,10 @@ assert_output_contains() {
assert_equal "$count" "$found"
}
assert_output_not_contains() {
assert_output_contains "$1" 0
}
# ShellCheck doesn't know about $lines from Bats
assert_line() {
if [[ "$1" -ge 0 ]] 2>/dev/null; then

View File

@@ -299,3 +299,72 @@ teardown() {
assert_success
assert_output "websecure"
}
@test "(traefik) label management" {
run /bin/bash -c "dokku proxy:set $TEST_APP traefik"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku traefik:label:add $TEST_APP traefik.directive value"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku traefik:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "traefik.directive=value"
run /bin/bash -c "dokku traefik:label:show $TEST_APP traefik.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku traefik:label:show $TEST_APP traefik.directive2"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run deploy_app
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"traefik.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "value"
run /bin/bash -c "dokku traefik:label:remove $TEST_APP traefik.directive"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku traefik:label:show $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "traefik.directive=value"
run /bin/bash -c "dokku traefik:label:show $TEST_APP traefik.directive"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
run /bin/bash -c "dokku ps:rebuild $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "docker inspect $TEST_APP.web.1 --format '{{ index .Config.Labels \"traefik.directive\" }}'"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_exists
}