Commit 0aa603de442d23ef3fede1b43b45b76d5ad17a47

Authored by Antonio Terceiro
1 parent 6f593b86

Refactor tests to not depend on /etc/hosts

@@ -5,10 +5,15 @@ set -e @@ -5,10 +5,15 @@ set -e
5 unset http_proxy 5 unset http_proxy
6 unset https_proxy 6 unset https_proxy
7 7
  8 +. $(dirname $0)/../ip_helper.sh
  9 +
8 /usr/bin/curl \ 10 /usr/bin/curl \
9 --silent \ 11 --silent \
10 --noproxy '*' \ 12 --noproxy '*' \
11 --fail \ 13 --fail \
12 --insecure \ 14 --insecure \
13 - --header 'Host: softwarepublico.dev' \ 15 + --resolve softwarepublico.dev:80:$reverseproxy \
  16 + --resolve softwarepublico.dev:443:$reverseproxy \
  17 + --resolve listas.softwarepublico.dev:80:$reverseproxy \
  18 + --resolve listas.softwarepublico.dev:443:$reverseproxy \
14 "$@" 19 "$@"
test/colab_test.sh
@@ -13,15 +13,15 @@ test_colab_running() { @@ -13,15 +13,15 @@ test_colab_running() {
13 } 13 }
14 14
15 test_colab_responds() { 15 test_colab_responds() {
16 - assertTrue 'colab responds' "run_on integration $curl http://localhost:8001" 16 + assertTrue 'colab responds' "run_on integration curl --header 'Host: softwarepublico.dev' http://localhost:8001"
17 } 17 }
18 18
19 test_nginx_responds() { 19 test_nginx_responds() {
20 - assertTrue 'nginx reponds' "run_on integration $curl http://localhost" 20 + assertTrue 'nginx reponds' "run_on integration curl --header 'Host: softwarepublico.dev' http://localhost"
21 } 21 }
22 22
23 test_nginx_virtualhost() { 23 test_nginx_virtualhost() {
24 - local title="$(./test/bin/curl http://$integration/dashboard | grep '<title>' | sed -e 's/^\s*//')" 24 + local title="$(curl --header 'Host: softwarepublico.dev' http://$integration/dashboard | grep '<title>' | sed -e 's/^\s*//')"
25 assertEquals "<title>Home - Colab</title>" "$title" 25 assertEquals "<title>Home - Colab</title>" "$title"
26 } 26 }
27 27
test/ip_helper.sh 0 → 100644
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +# make IP addresses avaliable at the environment so we can refer to hosts by
  2 +# name, e.g.
  3 +#
  4 +# curl http://$reverseproxy
  5 +# nmap -p 5423 $database
  6 +#
  7 +# Each node in the `peers:` entry in nodes.yaml will have its own variable
  8 +#
  9 +eval $(ruby -ryaml -e 'YAML.load_file("nodes.yaml").first[1]["peers"].each { |k,v| puts "#{k}=#{v}" }')
  10 +
test/reverse_proxy_test.sh
1 . $(dirname $0)/test_helper.sh 1 . $(dirname $0)/test_helper.sh
2 2
3 test_redirect_http_to_https() { 3 test_redirect_http_to_https() {
4 - local redirect="$(./test/bin/curl --head http://$reverseproxy/ | sed -e '/Location:/ !d; s/\r//')" 4 + local redirect="$(curl --header 'Host: softwarepublico.dev' --head http://$reverseproxy/ | sed -e '/Location:/ !d; s/\r//')"
5 assertEquals "Location: https://softwarepublico.dev/" "$redirect" 5 assertEquals "Location: https://softwarepublico.dev/" "$redirect"
6 } 6 }
7 7
8 test_reverse_proxy_to_colab() { 8 test_reverse_proxy_to_colab() {
9 - local title="$(./test/bin/curl https://$reverseproxy/dashboard | grep '<title>' | sed -e 's/^\s*//')" 9 + local title="$(curl --header 'Host: softwarepublico.dev' https://$reverseproxy/dashboard | grep '<title>' | sed -e 's/^\s*//')"
10 assertEquals "<title>Home - Colab</title>" "$title" 10 assertEquals "<title>Home - Colab</title>" "$title"
11 } 11 }
12 12
test/test_helper.sh
  1 +export PATH="$(dirname $0)/bin:$PATH"
  2 +
1 run_on() { 3 run_on() {
2 local vm="$1" 4 local vm="$1"
3 shift 5 shift
@@ -19,15 +21,4 @@ wait_for() { @@ -19,15 +21,4 @@ wait_for() {
19 return 1 21 return 1
20 } 22 }
21 23
22 -  
23 -curl=/vagrant/test/bin/curl  
24 -  
25 -# make IP addresses avaliable at the environment so we can refer to hosts by  
26 -# name, e.g.  
27 -#  
28 -# curl http://$reverseproxy  
29 -# nmap -p 5423 $database  
30 -#  
31 -# Each node in the `peers:` entry in nodes.yaml will have its own variable  
32 -#  
33 -eval $(ruby -ryaml -e 'YAML.load_file("nodes.yaml").first[1]["peers"].each { |k,v| puts "#{k}=#{v}" }') 24 +. $(dirname $0)/ip_helper.sh