Compare commits

...

2 Commits

Author SHA1 Message Date
3wc
ba936796ec Aborted attempts to get bats / kcov working 2020-12-14 12:04:36 +02:00
3wc
fdc6403a1b Use bats-mock 2020-12-14 12:04:27 +02:00
4 changed files with 31 additions and 12 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "tests/helpers/mocks"]
path = tests/helpers/mocks
url = https://github.com/Flamefire/bats-mock.git

View File

@ -5,8 +5,9 @@ test:
-it \ -it \
--rm \ --rm \
-v $$(pwd):/workdir \ -v $$(pwd):/workdir \
--privileged \
docker:dind \ docker:dind \
sh -c "apk add bats git bash && cd /workdir && bats /workdir/test.bats" sh -c "apk add bats git bash && cd /workdir && bats tests"
shellcheck: shellcheck:
@docker run \ @docker run \
@ -25,12 +26,15 @@ docopt:
.venv/bin/docopt.sh abra .venv/bin/docopt.sh abra
kcov: kcov:
@docker run \ @DOCKER_CONTEXT=default docker run \
-it \ -it \
--rm \ --rm \
-v $$(pwd):/workdir \ -v $$(pwd):/workdir \
kcov/kcov:latest \ koinotice/dind-kcov-bats \
sh -c "kcov /workdir/coverage /workdir/abra || true" bash -c "kcov coverage bats tests || true"
install:
install abra /usr/bin/abra
codecov: SHELL:=/bin/bash codecov: SHELL:=/bin/bash
codecov: codecov:

View File

@ -1,37 +1,48 @@
#!/usr/bin/env bats #!/usr/bin/env bats
load test_helper
setup() { setup() {
mkdir -p ~/.abra/servers/default export ABRA_DIR=$(mktemp -d)
export DOCKER_STUB_DEBUG=foo
mkdir -p $ABRA_DIR/servers/default
stub docker \
"context create * --docker * : touch $ABRA_DIR/context" \
'context ls : echo "swarm.test.com"' \
"context rm * : rm $ABRA_DIR/context" \
"context create * --docker * : touch $ABRA_DIR/context" \
"context rm * : rm $ABRA_DIR/context"
} }
teardown() { teardown() {
rm -rf ~/.abra/servers/default #unstub docker
rm -rf ~/.abra/servers/swarm.test.com #rm -rf "$ABRA_DIR"
echo "foo"
} }
@test "abra server add/rm works" { @test "abra server add/rm works" {
./abra server add swarm.test.com ./abra server add swarm.test.com
docker context ls | grep swarm.test.com docker context ls | grep swarm.test.com
[ -d ~/.abra/servers/swarm.test.com ] [ -d $ABRA_DIR/servers/swarm.test.com ]
./abra server rm swarm.test.com ./abra server rm swarm.test.com
./abra server add swarm.test.com foobar 12345 ./abra server add swarm.test.com foobar 12345
[ -d ~/.abra/servers/swarm.test.com ] [ -d $ABRA_DIR/servers/swarm.test.com ]
./abra server rm swarm.test.com ./abra server rm swarm.test.com
} }
@test "abra app new/rm works" { @test "abra app new/rm works" {
./abra app new --server default --domain traefik.test.com traefik ./abra app new --server default --domain traefik.test.com traefik
[ -f ~/.abra/servers/default/traefik.test.com.env ] [ -f $ABRA_DIR/servers/default/traefik.test.com.env ]
# interactive prompt # interactive prompt
echo "y" | ./abra app traefik.test.com delete echo "y" | ./abra app traefik.test.com delete
[ ! -f ~/.abra/servers/default/traefik.test.com.env ] [ ! -f $ABRA_DIR/servers/default/traefik.test.com.env ]
# --force # --force
./abra app new --server default --domain traefik.test.com traefik ./abra app new --server default --domain traefik.test.com traefik
./abra app traefik.test.com delete --force ./abra app traefik.test.com delete --force
[ ! -f ~/.abra/servers/default/traefik.test.com.env ] [ ! -f $ABRA_DIR/servers/default/traefik.test.com.env ]
} }
@test "abra app <domain> secret (insert|generate|rm)" { @test "abra app <domain> secret (insert|generate|rm)" {

1
tests/test_helper.bash Normal file
View File

@ -0,0 +1 @@
load helpers/mocks/src/stub