From 46ae7860d41664cdd97263e97e1023a0f9fa269f Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sat, 3 Dec 2022 22:49:08 +0100 Subject: t/i/docker: test the frontend also --- test/integration/docker/docker-compose.yml | 6 +++ test/integration/docker/test.sh | 71 +++++++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/test/integration/docker/docker-compose.yml b/test/integration/docker/docker-compose.yml index 1a5acf6..3a00971 100644 --- a/test/integration/docker/docker-compose.yml +++ b/test/integration/docker/docker-compose.yml @@ -14,3 +14,9 @@ services: - ./cgitize/etc:/etc/cgitize:ro - "$SSH_AUTH_SOCK:/ssh-agent.sock" - ./cgitize/output:/mnt/cgitize + frontend: + extends: + file: ../../../docker-compose.yml + service: frontend + volumes: + - ./cgitize/output:/mnt/cgitize:ro diff --git a/test/integration/docker/test.sh b/test/integration/docker/test.sh index e39cf84..fd21ec8 100755 --- a/test/integration/docker/test.sh +++ b/test/integration/docker/test.sh @@ -12,6 +12,7 @@ readonly script_name readonly ssh_dir="$script_dir/ssh" readonly client_key_password='password' readonly output_dir="$script_dir/cgitize/output" +readonly frontend_host=localhost dump() { local prefix="${FUNCNAME[0]}" @@ -44,6 +45,43 @@ cleanup() { popd > /dev/null } +_curl() { + local -a opts=(curl -sS --connect-timeout 5) + opts+=("$@") + + printf -- '%q ' ${opts[@]+"${opts[@]}"} >&2 + printf '\n' >&2 + + ${opts[@]+"${opts[@]}"} +} + +curl_document() { + _curl -L "$@" +} + +curl_status_code() { + _curl -o /dev/null -w '%{http_code}\n' "$@" +} + +curl_check_code() { + if [ "$#" -lt 1 ]; then + echo "usage: ${FUNCNAME[0]} EXPECTED [CURL_ARG...]" >&2 + return 1 + fi + + local expected + expected="$1" + shift + + local actual + actual="$( curl_status_code "$@" )" + + if [ "$expected" != "$actual" ]; then + echo "Expected code: $expected, actual code: $actual" >&2 + return 1 + fi +} + generate_ssh_keys() { echo echo ---------------------------------------------------------------------- @@ -152,12 +190,23 @@ run_cgitize() { docker-compose run --rm cgitize } +run_frontend() { + echo + echo ---------------------------------------------------------------------- + echo Running the frontend + echo ---------------------------------------------------------------------- + + docker-compose up -d frontend + sleep 2 +} + run() { run_git_server run_cgitize + run_frontend } -verify() { +verify_git() { echo echo ---------------------------------------------------------------------- echo Checking the pulled repository @@ -168,6 +217,26 @@ verify() { popd > /dev/null } +verify_frontend() { + echo + echo ---------------------------------------------------------------------- + echo Checking the frontend + echo ---------------------------------------------------------------------- + + local output + + output="$( curl_document "http://$frontend_host/test_repo/" )" + echo "$output" | grep -o -F -- "