Skip to content

Commit 9744a9d

Browse files
authored
test: update bats with upstream (#15)
1 parent e5025c5 commit 9744a9d

File tree

2 files changed

+68
-35
lines changed

2 files changed

+68
-35
lines changed

.github/workflows/tests.yml

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,16 @@ on:
1010
workflow_dispatch:
1111
inputs:
1212
debug_enabled:
13-
description: 'Debug with tmate set "debug_enabled"'
13+
type: boolean
14+
description: Debug with tmate
1415
required: false
15-
default: "false"
16+
default: false
1617

17-
env:
18-
# Allow ddev get to use a github token to prevent rate limiting by tests
19-
DDEV_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18+
concurrency:
19+
group: ${{ github.workflow }}-${{ github.ref }}
20+
cancel-in-progress: true
2021

21-
# Required permissions for keep-alive, used by ddev/github-action-add-on-test
22+
# This is required for "gautamkrishnar/keepalive-workflow", see "ddev/github-action-add-on-test"
2223
permissions:
2324
actions: write
2425

@@ -32,10 +33,10 @@ jobs:
3233
runs-on: ubuntu-latest
3334

3435
steps:
35-
- uses: ddev/github-action-add-on-test@v2
36-
with:
37-
ddev_version: ${{ matrix.ddev_version }}
38-
token: ${{ secrets.GITHUB_TOKEN }}
39-
debug_enabled: ${{ github.event.inputs.debug_enabled }}
40-
addon_repository: ${{ env.GITHUB_REPOSITORY }}
41-
addon_ref: ${{ env.GITHUB_REF }}
36+
- uses: ddev/github-action-add-on-test@v2
37+
with:
38+
ddev_version: ${{ matrix.ddev_version }}
39+
token: ${{ secrets.GITHUB_TOKEN }}
40+
debug_enabled: ${{ github.event.inputs.debug_enabled }}
41+
addon_repository: ${{ env.GITHUB_REPOSITORY }}
42+
addon_ref: ${{ env.GITHUB_REF }}

tests/test.bats

Lines changed: 54 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,71 @@
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/testmemcached
5-
mkdir -p $TESTDIR
6-
export PROJNAME=testmemcached
7-
export DDEV_NON_INTERACTIVE=true
8-
ddev delete -Oy ${PROJNAME} || true
17+
18+
# Override this variable for your add-on:
19+
export GITHUB_REPO=ddev/ddev-memcached
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
35+
run ddev config --project-name="${PROJNAME}" --project-tld=ddev.site
36+
assert_success
37+
run ddev start -y
38+
assert_success
39+
}
40+
41+
health_checks() {
42+
v=$(ddev exec 'printf "version\nquit\nquit\n" | nc memcached 11211')
43+
[[ "${v}" = VERSION* ]]
1244
}
1345

1446
teardown() {
1547
set -eu -o pipefail
16-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
17-
ddev delete -Oy ${PROJNAME} || true
48+
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1
1849
[ "${TESTDIR}" != "" ] && rm -rf ${TESTDIR}
1950
}
2051

2152
@test "install from directory" {
2253
set -eu -o pipefail
23-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
24-
echo "# ddev get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
25-
ddev get ${DIR}
26-
ddev restart
27-
v=$(ddev exec 'printf "version\nquit\nquit\n" | nc memcached 11211')
28-
[[ "${v}" = VERSION* ]]
54+
echo "# ddev add-on get ${DIR} with project ${PROJNAME} in $(pwd)" >&3
55+
run ddev add-on get "${DIR}"
56+
assert_success
57+
run ddev restart -y
58+
assert_success
59+
health_checks
2960
}
3061

62+
# bats test_tags=release
3163
@test "install from release" {
3264
set -eu -o pipefail
33-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
34-
echo "# ddev get ddev/ddev-memcached with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
35-
ddev get ddev/ddev-memcached
36-
ddev restart
37-
v=$(ddev exec 'printf "version\nquit\nquit\n" | nc memcached 11211')
38-
[[ "${v}" = VERSION* ]]
65+
echo "# ddev add-on get ${GITHUB_REPO} with project ${PROJNAME} in $(pwd)" >&3
66+
run ddev add-on get "${GITHUB_REPO}"
67+
assert_success
68+
run ddev restart -y
69+
assert_success
70+
health_checks
3971
}

0 commit comments

Comments
 (0)