Commit 0aa603de442d23ef3fede1b43b45b76d5ad17a47

Authored by Antonio Terceiro
1 parent 6f593b86

Refactor tests to not depend on /etc/hosts

test/bin/curl
... ... @@ -5,10 +5,15 @@ set -e
5 5 unset http_proxy
6 6 unset https_proxy
7 7  
  8 +. $(dirname $0)/../ip_helper.sh
  9 +
8 10 /usr/bin/curl \
9 11 --silent \
10 12 --noproxy '*' \
11 13 --fail \
12 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 13 }
14 14  
15 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 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 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 25 assertEquals "<title>Home - Colab</title>" "$title"
26 26 }
27 27  
... ...
test/ip_helper.sh 0 → 100644
... ... @@ -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 1 . $(dirname $0)/test_helper.sh
2 2  
3 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 5 assertEquals "Location: https://softwarepublico.dev/" "$redirect"
6 6 }
7 7  
8 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 10 assertEquals "<title>Home - Colab</title>" "$title"
11 11 }
12 12  
... ...
test/test_helper.sh
  1 +export PATH="$(dirname $0)/bin:$PATH"
  2 +
1 3 run_on() {
2 4 local vm="$1"
3 5 shift
... ... @@ -19,15 +21,4 @@ wait_for() {
19 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
... ...