Skip to content

Commit 5d978e3

Browse files
authored
fix: integration tests (#9)
* fix: integration tests Fixes #1 * extract checks so they can be reused --------- Co-authored-by: tyler36 <7234392+tyler36@users.noreply.github.com>
1 parent 41b7f8f commit 5d978e3

File tree

1 file changed

+56
-24
lines changed

1 file changed

+56
-24
lines changed

tests/test.bats

Lines changed: 56 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,77 @@
11
setup() {
22
set -eu -o pipefail
3-
4-
export DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )/.."
5-
export TESTDIR=~/tmp/ddev-laravel-worker
3+
export DIR="$(cd "$(dirname "$BATS_TEST_FILENAME")" >/dev/null 2>&1 && pwd)/.."
4+
export TESTDIR=~/tmp/test-laravel-queue
65
mkdir -p $TESTDIR
7-
export PROJNAME=ddev-laravel-worker
6+
export PROJNAME=test-laravel-queue
87
export DDEV_NON_INTERACTIVE=true
9-
ddev delete -Oy ${PROJNAME} || true
8+
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1 || true
109
cd "${TESTDIR}"
11-
ddev config --project-name=${PROJNAME}
12-
ddev start -y
13-
echo "# ddev started at $(date)" >&3
10+
}
11+
12+
health_checks() {
13+
ddev exec "curl -s https://localhost:443/"
14+
}
15+
16+
queue_checks() {
17+
# Add a route that dispatches a job when hit
18+
echo "Route::get('test-dispatch', function () {
19+
dispatch(function () {
20+
logger('hello from test-dispatch');
21+
});
22+
});" >> ./routes/web.php
23+
24+
# Visit the new route to trigger the dispatch
25+
ddev exec "curl -s https://localhost:443/test-dispatch"
26+
# We'll wait a few seconds to allow the queue worker to pick and process the job.
27+
sleep 5
28+
29+
if ! grep -q "hello from test-dispatch" ./storage/logs/laravel.log; then
30+
exit 1;
31+
fi
1432
}
1533

1634
teardown() {
1735
set -eu -o pipefail
18-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
19-
ddev delete -Oy ${PROJNAME}
36+
cd ${TESTDIR} || (printf "unable to cd to ${TESTDIR}\n" && exit 1)
37+
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1
2038
[ "${TESTDIR}" != "" ] && rm -rf ${TESTDIR}
2139
}
2240

2341
@test "install from directory" {
2442
set -eu -o pipefail
2543
cd ${TESTDIR}
2644
echo "# ddev get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
45+
ddev config --project-name=${PROJNAME}
46+
ddev start -y >/dev/null
2747
ddev get ${DIR}
2848
ddev restart
49+
health_checks
50+
}
2951

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

35-
# @test "install from release" {
36-
# set -eu -o pipefail
37-
# cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
38-
# echo "# ddev get tyler36/ddev-laravel-worker with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
39-
# ddev get tyler36/ddev-laravel-worker
40-
# ddev restart
41-
42-
# sleep 61
43-
# # Make sure cron process is running
44-
# ddev exec 'sudo killall -0 cron'
45-
# }
63+
@test "it processes jobs in Lavarel 11" {
64+
set -eu -o pipefail
65+
cd ${TESTDIR}
66+
echo "# ddev get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
67+
# Setup a Laravel project
68+
ddev config --project-type=laravel --docroot=public
69+
ddev composer create --prefer-dist laravel/laravel:^11
70+
ddev exec "php artisan key:generate"
71+
# Get addon and test
72+
ddev get ${DIR}
73+
ddev restart
74+
75+
health_checks
76+
queue_checks
77+
}

0 commit comments

Comments
 (0)