forked from toolshed/abra
		
	
		
			
				
	
	
		
			162 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/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(){
 | 
						|
  if [[ ! -f "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" ]]; then
 | 
						|
    _new_app
 | 
						|
  fi
 | 
						|
 | 
						|
  _undeploy_app
 | 
						|
}
 | 
						|
 | 
						|
@test "validate app argument" {
 | 
						|
  run $ABRA app deploy
 | 
						|
  assert_failure
 | 
						|
 | 
						|
  run $ABRA app deploy DOESNTEXIST
 | 
						|
  assert_failure
 | 
						|
}
 | 
						|
 | 
						|
@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'
 | 
						|
}
 | 
						|
 | 
						|
# 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'
 | 
						|
}
 | 
						|
 | 
						|
@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'
 | 
						|
}
 | 
						|
 | 
						|
@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"
 | 
						|
}
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
  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'
 | 
						|
}
 | 
						|
 | 
						|
# 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'
 | 
						|
}
 | 
						|
 | 
						|
# bats test_tags=slow
 | 
						|
@test "detect no configs to remove" {
 | 
						|
  _deploy_app
 | 
						|
  _undeploy_app
 | 
						|
 | 
						|
  run $ABRA app rm "$TEST_APP_DOMAIN" --no-input
 | 
						|
  assert_success
 | 
						|
  assert_output --partial 'no configs to remove'
 | 
						|
}
 | 
						|
 | 
						|
# bats test_tags=slow
 | 
						|
@test "remove old app configs" {
 | 
						|
  _deploy_app
 | 
						|
  _undeploy_app
 | 
						|
 | 
						|
  sanitisedDomainName="${TEST_APP_DOMAIN//./_}"
 | 
						|
  run docker config create "${sanitisedDomainName}_test_conf_v99" "$ABRA_DIR/recipes/abra-test-recipe/abra.sh"
 | 
						|
  assert_success
 | 
						|
 | 
						|
  assert bash -c "docker config ls | grep -q test_conf_v99"
 | 
						|
 | 
						|
  run $ABRA app rm "$TEST_APP_DOMAIN" --no-input
 | 
						|
  assert_success
 | 
						|
 | 
						|
  refute bash -c "docker config ls | grep -q test_conf_v99"
 | 
						|
}
 | 
						|
 | 
						|
@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"
 | 
						|
}
 |