Skip to content

Commit 4512b91

Browse files
authored
test: update bats (#51)
1 parent bac66fb commit 4512b91

File tree

1 file changed

+63
-26
lines changed

1 file changed

+63
-26
lines changed

tests/test.bats

Lines changed: 63 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,82 @@
1+
#!/usr/bin/env bats
2+
3+
# Bats is a testing framework for Bash
4+
# Documentation https://bats-core.readthedocs.io/en/stable/
5+
# Bats libraries documentation https://github.com/ztombol/bats-docs
6+
7+
# For local tests, install bats-core, bats-assert, bats-file, bats-support
8+
# And run this in the add-on root directory:
9+
# bats ./tests/test.bats
10+
# To exclude release tests:
11+
# bats ./tests/test.bats --filter-tags '!release'
12+
# For debugging:
13+
# bats ./tests/test.bats --show-output-of-passing-tests --verbose-run --print-output-on-failure
14+
115
setup() {
216
set -eu -o pipefail
3-
export DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )/.."
4-
export TESTDIR=~/tmp/ddev-drupal9-solr-test
5-
mkdir -p $TESTDIR
6-
export PROJNAME=solrtest
7-
export DDEV_NON_INTERACTIVE=true
8-
ddev delete -Oy ${PROJNAME} >/dev/null || true
17+
18+
# Override this variable for your add-on:
19+
export GITHUB_REPO=ddev/ddev-drupal-solr
20+
21+
TEST_BREW_PREFIX="$(brew --prefix 2>/dev/null || true)"
22+
export BATS_LIB_PATH="${BATS_LIB_PATH}:${TEST_BREW_PREFIX}/lib:/usr/lib/bats"
23+
bats_load_library bats-assert
24+
bats_load_library bats-file
25+
bats_load_library bats-support
26+
27+
export DIR="$(cd "$(dirname "${BATS_TEST_FILENAME}")/.." >/dev/null 2>&1 && pwd)"
28+
export PROJNAME="test-$(basename "${GITHUB_REPO}")"
29+
mkdir -p ~/tmp
30+
export TESTDIR=$(mktemp -d ~/tmp/${PROJNAME}.XXXXXX)
31+
export DDEV_NONINTERACTIVE=true
32+
export DDEV_NO_INSTRUMENTATION=true
33+
ddev delete -Oy "${PROJNAME}" >/dev/null 2>&1 || true
934
cd "${TESTDIR}"
10-
ddev config --project-name=${PROJNAME} --project-type=drupal9 --docroot=web --create-docroot --php-version=8.1
11-
echo "# Setting up Drupal project via composer ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
12-
ddev composer create -y -n --no-install drupal/recommended-project:^9 >/dev/null
35+
run ddev config --project-name="${PROJNAME}" --project-tld=ddev.site --project-type=drupal9 --docroot=web --php-version=8.1
36+
assert_success
37+
run ddev start -y
38+
assert_success
39+
40+
echo "# Setting up Drupal project via composer ${PROJNAME} in $(pwd)" >&3
41+
ddev composer create-project -n --no-install drupal/recommended-project:^9 >/dev/null
1342
ddev composer require -n --no-install drush/drush:* drupal/search_api_solr >/dev/null
1443
ddev composer config --append -- allow-plugins true
1544
ddev composer install >/dev/null
16-
ddev import-db --src=${DIR}/tests/testdata/db.sql.gz >/dev/null
45+
ddev import-db --file=${DIR}/tests/testdata/db.sql.gz >/dev/null
46+
}
47+
48+
health_checks() {
49+
run ddev exec 'drush sapi-sl --format=json | jq -r .default_solr_server.status'
50+
assert_success
51+
assert_output "enabled"
52+
53+
run ddev drush search-api-solr:reload default_solr_server
54+
assert_success
1755
}
1856

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

2563
@test "install from directory" {
2664
set -eu -o pipefail
27-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
28-
echo "# ddev get ddev/ddev-drupal9-solr with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
29-
ddev get ${DIR} >/dev/null
30-
ddev restart >/dev/null
31-
status=$(ddev exec 'drush sapi-sl --format=json | jq -r .default_solr_server.status')
32-
[ "${status}" = "enabled" ]
33-
ddev drush search-api-solr:reload default_solr_server >/dev/null
65+
echo "# ddev add-on get ${DIR} with project ${PROJNAME} in $(pwd)" >&3
66+
run ddev add-on get "${DIR}"
67+
assert_success
68+
run ddev restart -y
69+
assert_success
70+
health_checks
3471
}
3572

73+
# bats test_tags=release
3674
@test "install from release" {
3775
set -eu -o pipefail
38-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
39-
echo "# ddev get ddev/ddev-drupal9-solr with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
40-
ddev get ddev/ddev-drupal9-solr >/dev/null
41-
ddev restart >/dev/null
42-
status=$(ddev exec 'drush sapi-sl --format=json | jq -r .default_solr_server.status')
43-
[ "${status}" = "enabled" ]
44-
ddev drush search-api-solr:reload default_solr_server
76+
echo "# ddev add-on get ${GITHUB_REPO} with project ${PROJNAME} in $(pwd)" >&3
77+
run ddev add-on get "${GITHUB_REPO}"
78+
assert_success
79+
run ddev restart -y
80+
assert_success
81+
health_checks
4582
}

0 commit comments

Comments
 (0)