Skip to content

Commit f0e9921

Browse files
committed
Add healthcheck and improve tests
1 parent d7faec7 commit f0e9921

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

docker-compose.solr.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ services:
7373

7474
external_links:
7575
- "ddev-router:${DDEV_SITENAME}.${DDEV_TLD}"
76+
healthcheck:
77+
test: ["CMD-SHELL", "curl --fail -s localhost:8983/solr/"]
7678

7779
volumes:
7880
# solr is a persistent Docker volume for solr data

tests/test.bats

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,45 @@
11
setup() {
2+
set -eu -o pipefail
23
export DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )/.."
3-
export TESTDIR=$(mktemp -d -t testsolr-XXXXXXXXXX)
4-
export PROJNAME=testsolr
4+
export TESTDIR=~/tmp/ddev-drupal9-solr-test
5+
mkdir -p $TESTDIR
6+
export PROJNAME=solrtest
57
export DDEV_NON_INTERACTIVE=true
68
ddev delete -Oy ${PROJNAME} || true
79
cd "${TESTDIR}"
810
ddev config --project-name=${PROJNAME} --project-type=drupal9 --docroot=web --create-docroot
11+
echo "# Setting up Drupal project via composer ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
912
ddev composer create -y -n --no-install drupal/recommended-project
1013
ddev composer require -n --no-install drush/drush:* drupal/search_api_solr
11-
ddev composer install -n
14+
ddev composer config --append -- allow-plugins true
15+
ddev composer install
1216
ddev import-db --src=${DIR}/tests/testdata/db.sql.gz
1317
}
1418

1519
teardown() {
16-
cd ${TESTDIR}
20+
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
1721
ddev delete -Oy ${DDEV_SITENAME}
18-
rm -rf ${TESTDIR}
22+
[ "${TESTDIR}" != "" ] && rm -rf ${TESTDIR}
1923
}
2024

21-
@test "basic installation" {
22-
cd ${TESTDIR}
25+
@test "install from directory" {
26+
set -eu -o pipefail
27+
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
28+
echo "# ddev get drud/ddev-drupal9-solr with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
2329
ddev get ${DIR}
2430
ddev restart
2531
status=$(ddev exec 'drush sapi-sl --format=json | jq -r .default_solr_server.status')
2632
[ "${status}" = "enabled" ]
27-
sleep 10 # After a restart, the solr server may not be ready yet.
33+
ddev drush search-api-solr:reload default_solr_server
34+
}
35+
36+
@test "install from release" {
37+
set -eu -o pipefail
38+
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
39+
echo "# ddev get drud/ddev-drupal9-solr with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
40+
ddev get drud/ddev-drupal9-solr
41+
ddev restart
42+
status=$(ddev exec 'drush sapi-sl --format=json | jq -r .default_solr_server.status')
43+
[ "${status}" = "enabled" ]
2844
ddev drush search-api-solr:reload default_solr_server
2945
}

0 commit comments

Comments
 (0)