tests: add unit tests and support multiple routers/services in traefik

This commit is contained in:
Jose Diaz-Gonzalez
2022-08-18 11:13:34 -04:00
parent 801fc5d78c
commit c9caa0880f
2 changed files with 85 additions and 0 deletions

83
tests/unit/traefik.bats Normal file
View File

@@ -0,0 +1,83 @@
#!/usr/bin/env bats
load test_helper
setup() {
global_setup
dokku nginx:stop
dokku traefik:start
create_app
}
teardown() {
global_teardown
destroy_app
dokku traefik:stop
dokku nginx:start
}
@test "(traefik) traefik:help" {
run /bin/bash -c "dokku traefik"
echo "output: $output"
echo "status: $status"
assert_output_contains "Manage the traefik proxy integration"
help_output="$output"
run /bin/bash -c "dokku traefik:help"
echo "output: $output"
echo "status: $status"
assert_output_contains "Manage the traefik proxy integration"
assert_output "$help_output"
}
@test "(traefik) single domain" {
run /bin/bash -c "dokku proxy:set $TEST_APP traefik"
echo "output: $output"
echo "status: $status"
assert_success
run deploy_app
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "curl --silent $(dokku url $TEST_APP)"
echo "output: $output"
echo "status: $status"
assert_success
assert_output_contains "python/http.server"
}
@test "(traefik) multiple domains" {
run /bin/bash -c "dokku proxy:set $TEST_APP traefik"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku domains:add $TEST_APP $TEST_APP.dokku.me"
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "dokku domains:add $TEST_APP $TEST_APP-2.dokku.me"
echo "output: $output"
echo "status: $status"
assert_success
run deploy_app
echo "output: $output"
echo "status: $status"
assert_success
run /bin/bash -c "curl --silent $TEST_APP.dokku.me"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "python/http.server"
run /bin/bash -c "curl --silent $TEST_APP-2.dokku.me"
echo "output: $output"
echo "status: $status"
assert_success
assert_output "python/http.server"
}