Files
dokku/tests/unit/resource_3.bats
Jose Diaz-Gonzalez bc8adfa6e2 test: add run_plugn_trigger and run_plugin_script bats helpers
Both helpers wrap `run /bin/bash -c "..."` with the env vars dokku plugin scripts and `plugn` need, replacing the long inline boilerplate that was duplicated across `tests/unit/resource_3.bats` and the new `core-post-extract` regression tests in the builder bats files.
2026-05-07 12:47:00 -04:00

132 lines
3.9 KiB
Bash

#!/usr/bin/env bats
load test_helper
setup() {
global_setup
create_app
}
teardown() {
destroy_app
global_teardown
}
@test "(resource) resource:limit --process-type build (herokuish)" {
run /bin/bash -c "dokku resource:limit --memory 256m --cpu 1 --memory-swap 512m --nvidia-gpu 1 --process-type build $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku resource:report --resource-build.limit.memory $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_output "256m"
run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "--memory=256m"
assert_output_contains "--cpus=1"
assert_output_contains "--memory-swap=512m"
assert_output_contains "--gpus=1"
}
@test "(resource) resource:limit --process-type build (dockerfile filters cpu and gpu)" {
run /bin/bash -c "dokku resource:limit --memory 512m --cpu 1 --nvidia-gpu 1 --memory-swap 1g --process-type build $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run_plugn_trigger docker-args-process-build "$TEST_APP" dockerfile
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "--memory=512m"
assert_output_contains "--memory-swap=1g"
assert_output_not_contains "--cpus="
assert_output_not_contains "--gpus="
}
@test "(resource) resource:limit --process-type build (pack/lambda emit nothing)" {
run /bin/bash -c "dokku resource:limit --memory 512m --process-type build $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run_plugn_trigger docker-args-process-build "$TEST_APP" pack
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "--memory"
run_plugn_trigger docker-args-process-build "$TEST_APP" lambda
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "--memory"
}
@test "(resource) resource:limit defaults do not leak into build trigger" {
run /bin/bash -c "dokku resource:limit --memory 128m $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "--memory"
}
@test "(resource) resource:limit reservations do not apply at build time" {
run /bin/bash -c "dokku resource:reserve --memory 128m --process-type build $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run_plugn_trigger docker-args-process-build "$TEST_APP" herokuish
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "--memory-reservation"
assert_output_not_contains "--memory"
}
@test "(resource) DOKKU_OMIT_RESOURCE_ARGS suppresses build trigger" {
run /bin/bash -c "dokku resource:limit --memory 256m --process-type build $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run_plugn_trigger DOKKU_OMIT_RESOURCE_ARGS=1 docker-args-process-build "$TEST_APP" herokuish
echo "output: $output"
echo "status: $status"
assert_success
assert_output_not_contains "--memory"
}
@test "(resource) resource:limit-clear --process-type build" {
run /bin/bash -c "dokku resource:limit --memory 256m --process-type build $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku resource:report --resource-build.limit.memory $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_output "256m"
run /bin/bash -c "dokku resource:limit-clear --process-type build $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku resource:report --resource-build.limit.memory $TEST_APP"
echo "output: $output"
echo "status: $status"
assert_failure
}