fix-integration-tests #403

Merged
p4u1 merged 22 commits from p4u1/abra:fix-integration-tests into main 2024-03-11 13:27:21 +00:00
16 changed files with 75 additions and 63 deletions

View File

@ -2,7 +2,7 @@
ABRA_VERSION="0.8.1-beta"
ABRA_RELEASE_URL="https://git.coopcloud.tech/api/v1/repos/coop-cloud/abra/releases/tags/$ABRA_VERSION"
RC_VERSION="0.8.1-beta"
RC_VERSION="0.8.0-rc1-beta"
RC_VERSION_URL="https://git.coopcloud.tech/api/v1/repos/coop-cloud/abra/releases/tags/$RC_VERSION"
for arg in "$@"; do

View File

@ -70,13 +70,13 @@ setup(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
decentral1se marked this conversation as resolved Outdated

Seems a bit brittle, could we instead do a assert_output --regexp 'behind .* 3 commits'? Because that is the main thing we're matching on. Not the branch name / remote and so on. I think this might save us revisiting mass-edits on this again in the near future.

Same applies for the rest of the edits like this elsewhere.

Seems a bit brittle, could we instead do a `assert_output --regexp 'behind .* 3 commits'`? Because that is the main thing we're matching on. Not the branch name / remote and so on. I think this might save us revisiting mass-edits on this again in the near future. Same applies for the rest of the edits like this elsewhere.
Outdated
Review

Sound good, changed it

Sound good, changed it
run $ABRA app check "$TEST_APP_DOMAIN"
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
_reset_recipe
}
@ -86,7 +86,7 @@ setup(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 1'
assert_output --partial "Your branch is behind 'origin/main' by 1 commit"
# NOTE(d1): we can't quite tell if this will fail or not in the future, so,
# since it isn't an important part of what we're testing here, we don't check
@ -94,7 +94,7 @@ setup(){
run $ABRA app check "$TEST_APP_DOMAIN" --offline
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 1'
assert_output --partial "Your branch is behind 'origin/main' by 1 commit"
_reset_recipe
}

View File

@ -58,7 +58,7 @@ test_cmd_export"
assert_success
assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE"
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local
run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd
assert_success
assert_output --partial 'baz'
@ -70,7 +70,7 @@ test_cmd_export"
assert_success
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local
run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd
assert_failure
assert_output --partial 'locally unstaged changes'
@ -83,7 +83,7 @@ test_cmd_export"
assert_success
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --chaos
run $ABRA app cmd --local --chaos "$TEST_APP_DOMAIN" test_cmd
assert_success
assert_output --partial 'baz'
@ -96,14 +96,14 @@ test_cmd_export"
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local
run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd
assert_success
assert_output --partial 'baz'
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
assert_output --partial "up to date"
decentral1se marked this conversation as resolved Outdated

assert_output --partial "up to date"?

`assert_output --partial "up to date"`?
Outdated
Review

Sound good, changed it

Sound good, changed it
_reset_recipe "$TEST_RECIPE"
}
@ -113,14 +113,14 @@ test_cmd_export"
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --offline
run $ABRA app cmd --local --offline "$TEST_APP_DOMAIN" test_cmd
assert_success
assert_output --partial 'baz'
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
_reset_recipe "$TEST_RECIPE"
}
@ -132,13 +132,13 @@ test_cmd_export"
}
@test "error if missing arguments when passing --local" {
run $ABRA app cmd "$TEST_APP_DOMAIN" --local
run $ABRA app cmd --local "$TEST_APP_DOMAIN"
assert_failure
assert_output --partial 'missing arguments'
}
@test "cannot use --local and --user at same time" {
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --user root
run $ABRA app cmd --local --user root "$TEST_APP_DOMAIN" test_cmd
assert_failure
assert_output --partial 'cannot use --local & --user together'
}
@ -147,7 +147,7 @@ test_cmd_export"
run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE/abra.sh"
assert_success
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local --chaos
run $ABRA app cmd --local --chaos "$TEST_APP_DOMAIN" test_cmd
assert_failure
assert_output --partial "$ABRA_DIR/recipes/$TEST_RECIPE/abra.sh does not exist"
@ -155,25 +155,25 @@ test_cmd_export"
}
@test "error if missing command" {
run $ABRA app cmd "$TEST_APP_DOMAIN" doesnt_exist --local
run $ABRA app cmd --local "$TEST_APP_DOMAIN" doesnt_exist
assert_failure
assert_output --partial "doesn't have a doesnt_exist function"
}
@test "run --local command" {
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd --local
run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd
assert_success
assert_output --partial 'baz'
}
@test "run command with single arg" {
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd_arg --local -- bing
run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd_arg -- bing
assert_success
assert_output --partial 'bing'
}
@test "run command with several args" {
run $ABRA app cmd "$TEST_APP_DOMAIN" test_cmd_args --local -- bong bang
run $ABRA app cmd --local "$TEST_APP_DOMAIN" test_cmd_args -- bong bang
assert_success
assert_output --partial 'bong bang'
}

View File

@ -16,6 +16,7 @@ teardown_file(){
setup(){
load "$PWD/tests/integration/helpers/common"
_common_setup
_reset_recipe
}
teardown(){
@ -82,13 +83,13 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA app deploy "$TEST_APP_DOMAIN" --no-input --no-converge-checks
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
refute_output --regexp 'behind .* 3 commits'
_reset_recipe
_undeploy_app
@ -100,7 +101,7 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
# NOTE(d1): need to use --chaos to force same commit
run $ABRA app deploy "$TEST_APP_DOMAIN" \
@ -108,7 +109,7 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
_undeploy_app
_reset_recipe
@ -116,6 +117,9 @@ teardown(){
# bats test_tags=slow
@test "deploy latest commit if no published versions and no --chaos" {
# TODO(d1): fix with a new test recipe which has no published versions?
skip "known issue, abra-test-recipe has published versions now"
latestCommit="$(git -C "$ABRA_DIR/recipes/$TEST_RECIPE" rev-parse --short HEAD)"
_remove_tags
@ -140,7 +144,7 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
threeCommitsBack="$(git -C "$ABRA_DIR/recipes/$TEST_RECIPE" rev-parse --short HEAD)"
@ -273,6 +277,10 @@ teardown(){
}
@test "ensure domain is checked" {
if [[ "$TEST_SERVER" == "default" ]]; then
skip "domain checks are disabled for local server"
fi
appDomain="custom-html.DOESNTEXIST"
run $ABRA app new custom-html \

View File

@ -45,7 +45,7 @@ teardown(){
assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial "Your branch is up to date with 'origin/main'."
assert_output --partial "up to date"
}
@test "create new app with version" {
@ -121,7 +121,7 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial "Your branch is behind 'origin/main' by 3 commits, and can be fast-forwarded."
assert_output --regexp 'behind .* 3 commits'
run $ABRA app new "$TEST_RECIPE" \
--no-input \
@ -131,7 +131,7 @@ teardown(){
assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial "Your branch is up to date with 'origin/main'."
assert_output --partial "up to date"
_reset_recipe
}
@ -141,7 +141,7 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial "Your branch is behind 'origin/main' by 3 commits, and can be fast-forwarded."
assert_output --regexp 'behind .* 3 commits'
# NOTE(d1): need to use --chaos to force same commit
run $ABRA app new "$TEST_RECIPE" \
@ -154,7 +154,7 @@ teardown(){
assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial "Your branch is behind 'origin/main' by 3 commits, and can be fast-forwarded."
assert_output --regexp 'behind .* 3 commits'
_reset_recipe
}

View File

@ -104,7 +104,10 @@ teardown(){
_undeploy_app
run $ABRA app volume rm "$TEST_APP_DOMAIN"
# TODO: should wait as long as volume is no longer in use
sleep 10
run $ABRA app volume rm "$TEST_APP_DOMAIN" --no-input
decentral1se marked this conversation as resolved
Review

Isn't this covered by #399 now?

Isn't this covered by https://git.coopcloud.tech/coop-cloud/abra/pulls/399 now?
Review

It should be, but doesn't seem to work for me without the sleep. Can you check if it works for you without the sleep?

It should be, but doesn't seem to work for me without the sleep. Can you check if it works for you without the sleep?
Review
https://git.coopcloud.tech/coop-cloud/organising/issues/582
assert_success
run $ABRA app volume ls "$TEST_APP_DOMAIN"

View File

@ -109,13 +109,13 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA app restore "$TEST_APP_DOMAIN" app DOESNTEXIST
run $ABRA app restore "$TEST_APP_DOMAIN" app
assert_failure
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
assert_output --partial "up to date"
}
@test "ensure recipe not up to date if --offline" {
@ -126,19 +126,19 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA app restore "$TEST_APP_DOMAIN" app DOESNTEXIST --offline
run $ABRA app restore "$TEST_APP_DOMAIN" app --offline
assert_failure
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$latestCommit"
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
assert_output --partial "HEAD detached at $latestCommit"
}
@test "error if missing service" {

View File

@ -50,13 +50,13 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA app rollback "$TEST_APP_DOMAIN" --no-input --no-converge-checks
assert_failure
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
assert_output --partial "up to date"
}
@test "ensure recipe not up to date if --offline" {
@ -67,14 +67,14 @@ teardown(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA app rollback "$TEST_APP_DOMAIN" \
--no-input --no-converge-checks --offline
assert_failure
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$latestCommit"
assert_success
@ -131,7 +131,7 @@ teardown(){
latestCommit="$(git -C "$ABRA_DIR/recipes/$TEST_RECIPE" rev-parse --short HEAD)"
run $ABRA app deploy "$TEST_APP_DOMAIN" \
--no-input --no-converge-checks --chaos
--no-input --chaos
assert_success
assert_output --partial "$latestCommit"
assert_output --partial 'chaos'

View File

@ -8,7 +8,7 @@ setup_file(){
run $ABRA app new "$TEST_RECIPE" \
--no-input \
--server "$TEST_SERVER" \
--domain "$TEST_APP_DOMAIN" \
--domain "$TEST_APP_DOMAIN"
assert_success
assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
}
@ -19,13 +19,6 @@ teardown_file(){
_reset_recipe
}
teardown(){
# https://github.com/bats-core/bats-core/issues/383#issuecomment-738628888
if [[ -z "${BATS_TEST_COMPLETED}" ]]; then
_undeploy_app
fi
}
setup(){
load "$PWD/tests/integration/helpers/common"
_common_setup

View File

@ -59,6 +59,8 @@ teardown(){
# bats test_tags=slow
@test "error if not in catalogue" {
skip "known issue, see https://git.coopcloud.tech/coop-cloud/recipes-catalogue-json/issues/6"
_deploy_app
run $ABRA app version "$TEST_APP_DOMAIN"
@ -92,7 +94,7 @@ teardown(){
assert_success
# NOTE(d1): to let the stack come down before nuking volumes
sleep 3
sleep 5
run $ABRA app volume remove "$appDomain" --no-input
assert_success

View File

@ -79,7 +79,7 @@ teardown(){
_undeploy_app
# NOTE(d1): to let the stack come down before nuking volumes
sleep 5
sleep 10
run $ABRA app volume rm "$TEST_APP_DOMAIN" --force
assert_success
@ -93,7 +93,7 @@ teardown(){
_undeploy_app
# NOTE(d1): to let the stack come down before nuking volumes
sleep 5
sleep 10
run $ABRA app volume rm "$TEST_APP_DOMAIN" --force
assert_success

View File

@ -49,7 +49,7 @@ _reset_app(){
run $ABRA app new "$TEST_RECIPE" \
--no-input \
--server "$TEST_SERVER" \
--domain "$TEST_APP_DOMAIN" \
--domain "$TEST_APP_DOMAIN"
assert_success
assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
}

View File

@ -11,7 +11,11 @@ _add_server() {
}
_rm_server() {
run $ABRA server remove --no-input "$TEST_SERVER"
if [[ "$TEST_SERVER" == "default" ]]; then
run rm -rf "$ABRA_DIR/servers/default"
else
run $ABRA server remove --no-input "$TEST_SERVER"
fi
assert_success
assert_not_exists "$ABRA_DIR/servers/$TEST_SERVER"
}

View File

@ -66,13 +66,13 @@ setup() {
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA recipe lint "$TEST_RECIPE"
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
_reset_recipe
}
@ -82,13 +82,13 @@ setup() {
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA recipe lint "$TEST_RECIPE" --offline
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
_reset_recipe
}

View File

@ -61,14 +61,14 @@ setup(){
assert_success
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
assert_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
run $ABRA recipe upgrade "$TEST_RECIPE" --no-input
assert_success
assert_output --partial 'can upgrade service: app'
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" status
refute_output --partial 'behind 3'
assert_output --regexp 'behind .* 3 commits'
_reset_recipe
}

View File

@ -12,6 +12,8 @@ setup() {
}
@test "error if not present in catalogue" {
skip "known issue, see https://git.coopcloud.tech/coop-cloud/recipes-catalogue-json/issues/6"
p4u1 marked this conversation as resolved Outdated

Ah, this should be reverted because the example should never be in the catalogue but it can be cloned by abra. So the resulting error is now "can't clone", not "can't find in catalogue". I just realised I can't push to your fork so here is the diff:

diff --git a/tests/integration/recipe_version.bats b/tests/integration/recipe_version.bats
index d25faef..eea0bce 100644
--- a/tests/integration/recipe_version.bats
+++ b/tests/integration/recipe_version.bats
@@ -12,7 +12,7 @@ setup() {
 }

 @test "error if not present in catalogue" {
-  run $ABRA recipe versions "not-in-catalogue"
+  run $ABRA recipe versions "example"
   assert_failure
   assert_output --partial "is not published on the catalogue"
 }
Ah, this should be reverted because the `example` should never be in the catalogue *but* it can be cloned by `abra`. So the resulting error is now "can't clone", not "can't find in catalogue". I just realised I can't push to your fork so here is the diff: ```diff diff --git a/tests/integration/recipe_version.bats b/tests/integration/recipe_version.bats index d25faef..eea0bce 100644 --- a/tests/integration/recipe_version.bats +++ b/tests/integration/recipe_version.bats @@ -12,7 +12,7 @@ setup() { } @test "error if not present in catalogue" { - run $ABRA recipe versions "not-in-catalogue" + run $ABRA recipe versions "example" assert_failure assert_output --partial "is not published on the catalogue" } ```
run $ABRA recipe versions "$TEST_RECIPE"
assert_failure
assert_output --partial "is not published on the catalogue"