Skip to content

Commit

Permalink
fix: integration tests
Browse files Browse the repository at this point in the history
Fixes #1
  • Loading branch information
tyler36 committed Apr 25, 2024
1 parent 7e58054 commit 495ac15
Showing 1 changed file with 51 additions and 24 deletions.
75 changes: 51 additions & 24 deletions tests/test.bats
Original file line number Diff line number Diff line change
@@ -1,45 +1,72 @@
setup() {
set -eu -o pipefail

export DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )/.."
export TESTDIR=~/tmp/ddev-laravel-worker
export DIR="$(cd "$(dirname "$BATS_TEST_FILENAME")" >/dev/null 2>&1 && pwd)/.."
export TESTDIR=~/tmp/test-laravel-queue
mkdir -p $TESTDIR
export PROJNAME=ddev-laravel-worker
export PROJNAME=test-laravel-queue
export DDEV_NON_INTERACTIVE=true
ddev delete -Oy ${PROJNAME} || true
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1 || true
cd "${TESTDIR}"
ddev config --project-name=${PROJNAME}
ddev start -y
echo "# ddev started at $(date)" >&3
}

health_checks() {
ddev exec "curl -s https://localhost:443/"
}

teardown() {
set -eu -o pipefail
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
ddev delete -Oy ${PROJNAME}
cd ${TESTDIR} || (printf "unable to cd to ${TESTDIR}\n" && exit 1)
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1
[ "${TESTDIR}" != "" ] && rm -rf ${TESTDIR}
}

@test "install from directory" {
set -eu -o pipefail
cd ${TESTDIR}
echo "# ddev get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
ddev config --project-name=${PROJNAME}
ddev start -y >/dev/null
ddev get ${DIR}
ddev restart
health_checks
}

sleep 61
# Make sure cron process is running
ddev exec 'sudo killall -0 cron'
@test "install from release" {
set -eu -o pipefail
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
echo "# ddev get tyler36/ddev-laravel-worker with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
ddev config --project-name=${PROJNAME}
ddev start -y >/dev/null
ddev get tyler36/ddev-laravel-worker
ddev restart >/dev/null
health_checks
}

# @test "install from release" {
# set -eu -o pipefail
# cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
# echo "# ddev get tyler36/ddev-laravel-worker with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
# ddev get tyler36/ddev-laravel-worker
# ddev restart

# sleep 61
# # Make sure cron process is running
# ddev exec 'sudo killall -0 cron'
# }
@test "It process jobs in Lavarel 11" {
set -eu -o pipefail
cd ${TESTDIR}
echo "# ddev get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
# Setup a Laravel project
ddev config --project-type=laravel --docroot=public
ddev composer create --prefer-dist laravel/laravel:^11
ddev exec "php artisan key:generate"
# Get addon and test
ddev get ${DIR}
ddev restart

# Add a route that dispatches a job when hit
echo "Route::get('test-dispatch', function () {
dispatch(function () {
logger('hello from test-dispatch');
});
});" >> ./routes/web.php

# Visit the new route to trigger the dispatch
ddev exec "curl -s https://localhost:443/test-dispatch"
# We'll wait a few seconds to allow the queue worker to pick and process the job.
sleep 5

if ! grep -q "hello from test-dispatch" ./storage/logs/laravel.log; then
exit 1;
fi
}

0 comments on commit 495ac15

Please sign in to comment.