Files
dokku/tests/unit/builder.bats
Jose Diaz-Gonzalez 1ec71cd509 refactor: switch detected builder so first one wins
Also rename internal cnb references to pack (where possible).
2021-02-28 16:19:41 -05:00

122 lines
2.9 KiB
Bash

#!/usr/bin/env bats
load test_helper
setup() {
create_app
}
teardown() {
destroy_app
}
@test "(builder) builder-detect [pack]" {
local TMP=$(mktemp -d "/tmp/dokku.me.XXXXX")
trap 'popd &>/dev/null || true; rm -rf "$TMP"' INT TERM
# test project.toml
run touch "$TMP/project.toml"
echo "output: $output"
echo "status: $status"
assert_success
chown -R dokku:dokku "$TMP"
run /bin/bash -c "dokku plugin:trigger builder-detect $TEST_APP $TMP | head -n1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "pack"
sudo rm -rf $TMP/*
echo "output: $output"
echo "status: $status"
assert_success
# test DOKKU_CNB_EXPERIMENTAL env var
run /bin/bash -c "dokku config:set $TEST_APP DOKKU_CNB_EXPERIMENTAL=1"
echo "output: $output"
echo "status: $status"
assert_success
chown -R dokku:dokku "$TMP"
run /bin/bash -c "dokku plugin:trigger builder-detect $TEST_APP $TMP | head -n1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "pack"
}
@test "(builder) builder-detect [dockerfile]" {
local TMP=$(mktemp -d "/tmp/dokku.me.XXXXX")
trap 'popd &>/dev/null || true; rm -rf "$TMP"' INT TERM
run touch "$TMP/Dockerfile"
echo "output: $output"
echo "status: $status"
assert_success
chown -R dokku:dokku "$TMP"
run /bin/bash -c "dokku plugin:trigger builder-detect $TEST_APP $TMP | head -n1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "dockerfile"
}
@test "(builder) builder-detect [herokuish]" {
local TMP=$(mktemp -d "/tmp/dokku.me.XXXXX")
trap 'popd &>/dev/null || true; rm -rf "$TMP"' INT TERM
touch "$TMP/Dockerfile"
# test buildpacks
chown -R dokku:dokku "$TMP"
run /bin/bash -c "touch $TMP/.buildpacks"
echo "output: $output"
echo "status: $status"
assert_success
chown -R dokku:dokku "$TMP"
run /bin/bash -c "dokku plugin:trigger builder-detect $TEST_APP $TMP | head -n1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "herokuish"
sudo rm -rf $TMP/*
echo "output: $output"
echo "status: $status"
assert_success
# test .env
run /bin/bash -c "echo BUILDPACK_URL=null > $TMP/.env"
echo "output: $output"
echo "status: $status"
assert_success
chown -R dokku:dokku "$TMP"
run /bin/bash -c "dokku plugin:trigger builder-detect $TEST_APP $TMP | head -n1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "herokuish"
sudo rm -rf $TMP/*
echo "output: $output"
echo "status: $status"
assert_success
# test BUILDPACK_URL env var
run /bin/bash -c "dokku config:set $TEST_APP BUILDPACK_URL=null"
echo "output: $output"
echo "status: $status"
assert_success
chown -R dokku:dokku "$TMP"
run /bin/bash -c "dokku plugin:trigger builder-detect $TEST_APP $TMP | head -n1"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "herokuish"
}