pdnsmanager/backend/test/test.sh
2018-04-17 21:30:44 +02:00

135 lines
2.7 KiB
Bash
Executable file

#!/bin/bash
function makeConfig() {
source config.sh
touch "logfile.log"
cat <<EOM > "../src/config/ConfigOverride.php"
<?php
return [
'db' => [
'host' => '$DBHOST',
'user' => '$DBUSER',
'password' => '$DBPASSWORD',
'dbname' => '$DBNAME'
],
'logging' => [
'level' => 'error',
'path' => '../../test/logfile.log'
],
'authentication' => [
'native' => [
'plugin' => 'native',
'prefix' => 'default',
'config' => null
],
'config' => [
'plugin' => 'config',
'prefix' => 'config',
'config' => [
'configuser' => '\$2y\$10\$twlIJ0hYeaHqMsiM7OdLr.4HkV6/EEQneDg9uZiU.l7yn1bpxSD1.',
'notindb' => '\$2y\$10\$z1dD1Q5u68l5iqEmqnOAVuoR5VWR77HUfxMUycJ9TdDG3H5dLZGVW'
]
]
],
'proxys' => ['127.0.0.1']
];
EOM
}
function clearConfig() {
rm "../src/config/ConfigOverride.php"
rm "logfile.log"
}
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
source config.sh
cd "$SCRIPTPATH"
if [ $# -lt 1 ]
then
echo "The script needs either run or all as parameter."
exit 1
fi
if [ $1 == "run" ]
then
if [ $# -lt 2 ]
then
echo "run needs an argument."
exit 1
fi
makeConfig
echo "Preparing Database"
if [ -z "$DBPASSWORD" ]
then
mysql "-h$DBHOST" "-u$DBUSER" "$DBNAME" < db.sql
else
mysql "-h$DBHOST" "-u$DBUSER" "-p$DBPASSWORD" "$DBNAME" < db.sql
fi
echo "Executing test"
if ! node "tests/$2.js" "$TESTURL"
then
echo "Test failed"
clearConfig
exit 1
else
if [ $(cat logfile.log | wc -l) -gt 0 ]
then
echo "Errors in logfile:"
cat "logfile.log"
clearConfig
exit 2
else
echo "Test successfull"
clearConfig
exit 0
fi
fi
elif [ $1 == "all" ]
then
for test in tests/*
do
makeConfig
echo -n $(basename $test .js) "..."
if [ -z "$DBPASSWORD" ]
then
mysql "-h$DBHOST" "-u$DBUSER" "$DBNAME" < db.sql
else
mysql "-h$DBHOST" "-u$DBUSER" "-p$DBPASSWORD" "$DBNAME" < db.sql
fi
echo -n "..."
if ! node "$test" "$TESTURL"
then
clearConfig
exit 1
else
if [ $(cat logfile.log | wc -l) -gt 0 ]
then
cat "logfile.log"
clearConfig
exit 2
else
echo " OK"
fi
fi
clearConfig
done
else
echo "$1 is not a valid command."
exit 3
fi