#!/usr/bin/env bats load test_helper setup() { global_setup [[ -f "$DOKKU_ROOT/VHOST" ]] && cp -fp "$DOKKU_ROOT/VHOST" "$DOKKU_ROOT/VHOST.bak" create_app } teardown() { destroy_app [[ -f "$DOKKU_ROOT/VHOST.bak" ]] && mv "$DOKKU_ROOT/VHOST.bak" "$DOKKU_ROOT/VHOST" && chown dokku:dokku "$DOKKU_ROOT/VHOST" global_teardown } @test "(nginx-vhosts) nginx:set x-forwarded-for-value" { run deploy_app echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-For \$remote_addr;" run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-for-value '\$http_x_forwarded_for'" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-For \$http_x_forwarded_for;" } @test "(nginx-vhosts) nginx:set x-forwarded-port-value" { run deploy_app echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Port \$server_port;" run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-port-value '\$http_x_forwarded_port'" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Port \$http_x_forwarded_port;" } @test "(nginx-vhosts) nginx:set x-forwarded-proto-value" { run deploy_app echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Proto \$scheme;" run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-proto-value '\$http_x_forwarded_proto'" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Proto \$http_x_forwarded_proto;" } @test "(nginx-vhosts) nginx:set x-forwarded-ssl" { run deploy_app echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Ssl" 0 run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-ssl on" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Ssl on;" run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-ssl off" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Ssl off;" run /bin/bash -c "dokku nginx:set $TEST_APP x-forwarded-ssl" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku proxy:build-config $TEST_APP" echo "output: $output" echo "status: $status" assert_success run /bin/bash -c "dokku nginx:show-config $TEST_APP" echo "output: $output" echo "status: $status" assert_output_contains "X-Forwarded-Ssl" 0 }