authelia/scripts/integration-tests.sh

83 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
DC_SCRIPT=./scripts/example-commit/dc-example.sh
EXPECTED_SERVICES_COUNT=9
build_services() {
$DC_SCRIPT build authelia
}
start_services() {
$DC_SCRIPT up -d httpbin mongo redis openldap authelia smtp nginx-authelia nginx-portal nginx-backend
sleep 3
}
shut_services() {
containers_exist=`docker ps -aq | wc -l`
if [ "$containers_exist" -ne "0" ]
then
docker rm -f $(docker ps -aq)
fi
}
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 "Start services..."
start_services
expect_services_count $EXPECTED_SERVICES_COUNT
sleep 5
./node_modules/.bin/grunt run:test-int
shut_services
}
run_other_tests() {
echo "Test dev environment deployment (commands in README)"
# rm -rf node_modules
# ./scripts/build-dev.sh
./scripts/example-commit/deploy-example.sh
expect_services_count $EXPECTED_SERVICES_COUNT
./scripts/example-commit/undeploy-example.sh
}
run_other_tests_docker() {
echo "Test dev docker deployment (commands in README)"
./scripts/example-dockerhub/deploy-example.sh
expect_services_count $EXPECTED_SERVICES_COUNT
./scripts/example-dockerhub/undeploy-example.sh
}
set -e
echo "Make sure services are not already running"
shut_services
# Build the container
build_services
# Prepare & test example from end user perspective
run_integration_tests
# Other tests like executing the deployment script
run_other_tests
# Test example with precompiled container
run_other_tests_docker