Tests deployment commands provided to users in README

This commit is contained in:
Clement Michaud 2017-07-16 16:20:59 +02:00
parent 7fd0f8e144
commit c648a482d7
2 changed files with 74 additions and 53 deletions

View File

@ -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

View File

@ -2,21 +2,30 @@
DC_SCRIPT=./scripts/example/dc-example.sh DC_SCRIPT=./scripts/example/dc-example.sh
run_services() { start_services() {
$DC_SCRIPT up -d redis openldap $DC_SCRIPT up -d redis openldap authelia nginx nginx-tests
sleep 2
$DC_SCRIPT up -d authelia nginx nginx-tests
sleep 3 sleep 3
} }
set -e shut_services() {
echo "Make sure services are not already running"
$DC_SCRIPT down $DC_SCRIPT down
}
expect_services_count() {
EXPECTED_COUNT=$1
service_count=`docker ps -a | grep "Up " | wc -l`
# Prepare & run integration tests 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" 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" cat example/nginx/nginx.conf | sed 's/listen 443 ssl/listen 8080 ssl/g' | dd of="test/integration/nginx.conf"
@ -24,7 +33,7 @@ echo "Build services images..."
$DC_SCRIPT build $DC_SCRIPT build
echo "Start services..." echo "Start services..."
run_services start_services
docker ps -a docker ps -a
echo "Display services logs..." echo "Display services logs..."
@ -35,20 +44,46 @@ $DC_SCRIPT logs nginx-tests
$DC_SCRIPT logs authelia $DC_SCRIPT logs authelia
echo "Check number of services" echo "Check number of services"
./scripts/example/check-services.sh expect_services_count 5
echo "Run integration tests..." echo "Run integration tests..."
$DC_SCRIPT run --rm integration-tests $DC_SCRIPT run --rm integration-tests
echo "Shutdown services..." echo "Shutdown services..."
$DC_SCRIPT down shut_services
}
# Prepare & test example from end user perspective
run_system_tests() {
echo "Start services..." echo "Start services..."
run_services start_services
expect_services_count 5
./node_modules/.bin/mocha --compilers ts:ts-node/register --recursive test/system ./node_modules/.bin/mocha --compilers ts:ts-node/register --recursive test/system
shut_services
}
$DC_SCRIPT down 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"
shut_services
# Prepare & run integration tests
run_integration_tests
# Prepare & test example from end user perspective
run_system_tests
# Other tests like executing the deployment script
run_other_tests