pdnsmanager/backend/test/test.sh

135 lines
2.7 KiB
Bash
Raw Normal View History

2018-03-23 18:16:39 +01:00
#!/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' => [
2018-03-26 19:32:32 +02:00
'level' => 'error',
2018-03-23 20:06:13 +01:00
'path' => '../../test/logfile.log'
2018-03-23 18:16:39 +01:00
],
'authentication' => [
'native' => [
2018-03-23 18:16:39 +01:00
'plugin' => 'native',
'prefix' => 'default',
2018-03-23 18:16:39 +01:00
'config' => null
],
2018-04-05 14:53:56 +02:00
'config' => [
'plugin' => 'config',
2018-04-05 14:53:56 +02:00
'prefix' => 'config',
'config' => [
2018-04-05 14:53:56 +02:00
'configuser' => '\$2y\$10\$twlIJ0hYeaHqMsiM7OdLr.4HkV6/EEQneDg9uZiU.l7yn1bpxSD1.',
'notindb' => '\$2y\$10\$z1dD1Q5u68l5iqEmqnOAVuoR5VWR77HUfxMUycJ9TdDG3H5dLZGVW'
]
2018-03-23 18:16:39 +01:00
]
2018-04-17 21:30:44 +02:00
],
'proxys' => ['127.0.0.1']
2018-03-23 18:16:39 +01:00
];
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
2018-03-23 18:16:39 +01:00
echo "Executing test"
if ! node "tests/$2.js" "$TESTURL"
then
echo "Test failed"
clearConfig
exit 1
else
2018-03-24 13:32:34 +01:00
if [ $(cat logfile.log | wc -l) -gt 0 ]
2018-03-23 18:16:39 +01:00
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
2018-03-23 18:16:39 +01:00
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