diff --git a/scripts/example/check-services.sh b/scripts/example/check-services.sh deleted file mode 100755 index 49a760698..000000000 --- a/scripts/example/check-services.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -service_count=`docker ps -a | grep "Up " | wc -l` - -if [ "${service_count}" -eq "5" ] -then - echo "Service are up and running." - exit 0 -else - echo "Some services exited..." - docker ps -a - exit 1 -fi - diff --git a/scripts/integration-tests.sh b/scripts/integration-tests.sh index 681f58580..4b33a6361 100755 --- a/scripts/integration-tests.sh +++ b/scripts/integration-tests.sh @@ -2,53 +2,88 @@ DC_SCRIPT=./scripts/example/dc-example.sh -run_services() { - $DC_SCRIPT up -d redis openldap - sleep 2 - $DC_SCRIPT up -d authelia nginx nginx-tests +start_services() { + $DC_SCRIPT up -d redis openldap authelia nginx nginx-tests sleep 3 } +shut_services() { + $DC_SCRIPT down +} + +expect_services_count() { + EXPECTED_COUNT=$1 + service_count=`docker ps -a | grep "Up " | wc -l` + + if [ "${service_count}" -eq "$EXPECTED_COUNT" ] + then + echo "Services are up and running." + else + echo "Some services exited..." + docker ps -a + exit 1 + fi +} + +run_integration_tests() { + echo "Prepare nginx-test configuration" + cat example/nginx/nginx.conf | sed 's/listen 443 ssl/listen 8080 ssl/g' | dd of="test/integration/nginx.conf" + + echo "Build services images..." + $DC_SCRIPT build + + echo "Start services..." + start_services + docker ps -a + + echo "Display services logs..." + $DC_SCRIPT logs redis + $DC_SCRIPT logs openldap + $DC_SCRIPT logs nginx + $DC_SCRIPT logs nginx-tests + $DC_SCRIPT logs authelia + + echo "Check number of services" + expect_services_count 5 + + echo "Run integration tests..." + $DC_SCRIPT run --rm integration-tests + + echo "Shutdown services..." + shut_services +} + +run_system_tests() { + echo "Start services..." + start_services + expect_services_count 5 + + ./node_modules/.bin/mocha --compilers ts:ts-node/register --recursive test/system + shut_services +} + +run_other_tests() { + echo "Test dev environment deployment (commands in README)" + npm install --only=dev + ./node_modules/.bin/grunt build-dist + ./scripts/example/deploy-example.sh + expect_services_count 4 +} + + + + + set -e echo "Make sure services are not already running" -$DC_SCRIPT down - +shut_services # Prepare & run integration tests - -echo "Prepare nginx-test configuration" -cat example/nginx/nginx.conf | sed 's/listen 443 ssl/listen 8080 ssl/g' | dd of="test/integration/nginx.conf" - -echo "Build services images..." -$DC_SCRIPT build - -echo "Start services..." -run_services -docker ps -a - -echo "Display services logs..." -$DC_SCRIPT logs redis -$DC_SCRIPT logs openldap -$DC_SCRIPT logs nginx -$DC_SCRIPT logs nginx-tests -$DC_SCRIPT logs authelia - -echo "Check number of services" -./scripts/example/check-services.sh - -echo "Run integration tests..." -$DC_SCRIPT run --rm integration-tests - -echo "Shutdown services..." -$DC_SCRIPT down +run_integration_tests # Prepare & test example from end user perspective +run_system_tests -echo "Start services..." -run_services - -./node_modules/.bin/mocha --compilers ts:ts-node/register --recursive test/system - -$DC_SCRIPT down - +# Other tests like executing the deployment script +run_other_tests