pm2/test/e2e/cli/serve.sh
2019-03-27 16:19:43 +01:00

137 lines
4.9 KiB
Bash

#!/usr/bin/env bash
SRC=$(cd $(dirname "$0"); pwd)
source "${SRC}/../include.sh"
cd $file_path/serve
PORT=8081
PORT_2=8082
echo "################## PM2 SERVE ###################"
$pm2 serve --port $PORT
should 'should have started serving dir' 'online' 1
curl http://localhost:$PORT/ > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should have served index file under /"
success "should have served index file under /"
curl http://localhost:$PORT/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should have served index file under /index.html"
success "should have served index file under /index.html"
echo "Shutting down the server"
$pm2 delete all
curl http://localhost:$PORT/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 0 ] || fail "should be offline"
success "should be offline"
echo "testing SPA"
$pm2 serve . $PORT --spa
should 'should have started serving dir' 'online' 1
curl http://localhost:$PORT/ > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should have served index file under /index.html"
success "should have served index file under /index.html"
curl http://localhost:$PORT/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should have served index file under /index.html"
success "should have served index file under /index.html"
curl http://localhost:$PORT/other.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | wc -l`
[ $OUT -eq 2 ] || fail "should have served file under /other.html"
success "should have served file under /other.html"
curl http://localhost:$PORT/mangezdespommes/avecpepin/lebref > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should have served index file under /index.html"
success "should have served index file under /index.html"
curl http://localhost:$PORT/mangezdespommes/avecpepin/lebref/other.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | wc -l`
[ $OUT -eq 2 ] || fail "should have served file under /other.html"
success "should have served file under /other.html"
echo "Shutting down the server"
$pm2 delete all
echo "testing basic auth"
$pm2 serve . $PORT --basic-auth-username user --basic-auth-password pass
should 'should have started serving dir' 'online' 1
curl http://user:pass@localhost:$PORT/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should have served index file under /index.html"
success "should have served index file under /index.html"
echo "Shutting down the server"
$pm2 delete all
echo "Testing with static ecosystem"
$pm2 start ecosystem-serve.json
should 'should have started serving dir' 'online' 1
curl http://user:pass@localhost:8081/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should be listening on port 8081"
success "should be listening on port 8081"
curl http://user:pass@localhost:8081/mangezdesmangues/aupakistan > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should be listening on port 8081"
success "should be listening on port 8081"
echo "Shutting down the server"
$pm2 delete all
$pm2 serve . $PORT_2
should 'should have started serving dir' 'online' 1
curl http://localhost:$PORT_2/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should be listening on port $PORT_2"
success "should be listening on port $PORT_2"
node -e "require('semver').lt(process.versions.node, '6.0.0') ? process.exit(0) : process.exit(1)"
[ $? -eq 1 ] || exit 0
$pm2 delete all
$pm2 serve . $PORT_2 --name frontend
should 'should have started serving dir' 'online' 1
should 'should have custom name' 'frontend' 7
curl http://localhost:$PORT_2/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should be listening on port $PORT_2"
success "should be listening on port $PORT_2"
curl http://localhost:$PORT_2/yolo.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "your file doesnt exist" | wc -l`
[ $OUT -eq 1 ] || fail "should have served custom 404 file"
success "should have served custom 404 file"
$pm2 delete all
$pm2 start ecosystem.json
should 'should have started serving dir' 'online' 1
curl http://localhost:8081/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 1 ] || fail "should be listening on port 8081"
success "should be listening on port 8081"
$pm2 stop ecosystem.json
curl http://localhost:8081/index.html > /tmp/tmp_out.txt
OUT=`cat /tmp/tmp_out.txt | grep -o "good shit" | wc -l`
[ $OUT -eq 0 ] || fail "should be offline"
success "should be offline"