#!/usr/bin/env bash setup_file(){ load "$PWD/tests/integration/helpers/common" _common_setup _add_server _new_app } teardown_file(){ _rm_app _rm_server } setup(){ load "$PWD/tests/integration/helpers/common" _common_setup } teardown(){ # https://github.com/bats-core/bats-core/issues/383#issuecomment-738628888 if [[ -z "${BATS_TEST_COMPLETED}" ]]; then _undeploy_app fi } @test "validate app argument" { run $ABRA app deploy assert_failure assert_output --partial 'no app provided' run $ABRA app deploy DOESNTEXIST assert_failure assert_output --partial 'cannot find app' } @test "do not show ALERTA warning if --force / --no-input" { run $ABRA app rm "$TEST_APP_DOMAIN" --force refute_output --partial 'ALERTA' run $ABRA app rm "$TEST_APP_DOMAIN" --no-input refute_output --partial 'ALERTA' _new_app } # bats test_tags=slow @test "error if still deployed" { _deploy_app run $ABRA app rm "$TEST_APP_DOMAIN" --no-input assert_failure assert_output --partial 'is still deployed' _undeploy_app } @test "detect no secrets to remove" { run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'test_pass_one' run $ABRA app secret rm "$TEST_APP_DOMAIN" --all --no-input assert_success run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'test_pass_one' assert_output --partial 'false' run $ABRA app rm "$TEST_APP_DOMAIN" --no-input assert_success assert_output --partial 'no secrets to remove' _new_app } @test "remove secrets" { run $ABRA app secret generate "$TEST_APP_DOMAIN" --all assert_failure assert_output --partial 'already exists' run $ABRA app secret ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'test_pass_one' run $ABRA app rm "$TEST_APP_DOMAIN" --no-input assert_success refute_output --partial 'no secrets to remove' sanitisedDomainName="${TEST_APP_DOMAIN//./_}" assert_output --partial "$sanitisedDomainName_test_pass_one_v1 removed" _new_app } # bats test_tags=slow @test "detect no volumes to remove" { _deploy_app run $ABRA app volume ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'test-volume' _undeploy_app # TODO: should wait as long as volume is no longer in use sleep 10 run $ABRA app volume rm "$TEST_APP_DOMAIN" --no-input assert_success run $ABRA app volume ls "$TEST_APP_DOMAIN" assert_success refute_output --partial 'test-volume' assert_output --partial 'no volumes created' run $ABRA app rm "$TEST_APP_DOMAIN" --no-input assert_success assert_output --partial 'no volumes to remove' _new_app } # bats test_tags=slow @test "remove volumes" { _deploy_app run $ABRA app volume ls "$TEST_APP_DOMAIN" assert_success assert_output --partial 'test-volume' _undeploy_app run $ABRA app rm "$TEST_APP_DOMAIN" --no-input assert_success assert_output --partial 'test-volume' assert_output --partial 'removed' _new_app } @test "remove .env file" { assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" run $ABRA app rm "$TEST_APP_DOMAIN" --no-input assert_success assert_not_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" _new_app }