Skip to content

Commit 1159d71

Browse files
authored
Merge pull request #24 from tyler36/refactor--modernize-test
refactor: modernize tests
2 parents b888cdb + c66c17a commit 1159d71

1 file changed

Lines changed: 62 additions & 23 deletions

File tree

tests/test.bats

Lines changed: 62 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,53 @@
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/test-addon-backstop
5-
mkdir -p $TESTDIR
6-
export PROJNAME=test-addon-backstop
7-
export DDEV_NON_INTERACTIVE=true
8-
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1 || true
17+
18+
# Override this variable for your add-on:
19+
export GITHUB_REPO=mmunz/ddev-backstopjs
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}
11-
ddev start -y >/dev/null
35+
run ddev config --project-name="${PROJNAME}" --project-tld=ddev.site
36+
assert_success
37+
run ddev start -y
38+
assert_success
39+
echo "# ddev started at $(date)" >&3
40+
}
41+
42+
health_checks() {
43+
# backstop is installed and can show its version
44+
run ddev backstop version
45+
assert_success
46+
assert_output --partial 'Command "version" successfully executed'
1247
}
1348

1449
teardown() {
1550
set -eu -o pipefail
16-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
1751
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1
1852
[ "${TESTDIR}" != "" ] && rm -rf ${TESTDIR}
1953
}
@@ -22,25 +56,30 @@ teardown() {
2256
set -eu -o pipefail
2357
cd ${TESTDIR}
2458
echo "# ddev add-on get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
25-
ddev add-on get ${DIR}
59+
run ddev add-on get ${DIR}
60+
assert_success
2661
ddev restart
2762

28-
# backstop is installed and can show its version
29-
ddev backstop version | grep 'Command "version" successfully executed'
63+
# Check service works
64+
health_checks
3065

3166
# openReport and remote commands show an error message
3267
set +o pipefail
33-
ddev backstop openReport | grep -q 'This does not work for backstop in ddev'
34-
ddev backstop remote | grep -q 'This does not work for backstop in ddev'
68+
run ddev backstop openReport
69+
assert_output --partial 'This does not work for backstop in ddev'
70+
run ddev backstop remote
71+
assert_output --partial 'This does not work for backstop in ddev'
3572
}
3673

3774
# bats test_tags=release
38-
#@test "install from release" {
39-
# set -eu -o pipefail
40-
# cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
41-
# echo "# ddev add-on get drud/ddev-addon-template with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
42-
# ddev add-on get drud/ddev-addon-template
43-
# ddev restart >/dev/null
44-
# # Do something useful here that verifies the add-on
45-
# # ddev exec "curl -s elasticsearch:9200" | grep "${PROJNAME}-elasticsearch"
46-
#}
75+
@test "install from release" {
76+
set -eu -o pipefail
77+
echo "# ddev add-on get ${GITHUB_REPO} with project ${PROJNAME} in $(pwd)" >&3
78+
run ddev add-on get "${GITHUB_REPO}"
79+
assert_success
80+
run ddev restart -y
81+
assert_success
82+
83+
# Check service works
84+
health_checks
85+
}

0 commit comments

Comments
 (0)