#!/usr/bin/env bash

setup_file(){
  load "$PWD/tests/integration/helpers/common"
  _common_setup
  _add_server
}

teardown_file(){
  _rm_server
}

setup(){
  load "$PWD/tests/integration/helpers/common"
  _common_setup
}

teardown(){
  if [[ -f "$ABRA_DIR/servers/$TEST_SERVER/foobar.$TEST_SERVER.env" ]]; then
    run $ABRA app undeploy "foobar.$TEST_SERVER" --no-input
    assert_success

    run $ABRA app rm "foobar.$TEST_SERVER" --no-input
    assert_success
  fi

  if [[ -d "$ABRA_DIR/recipes/foobar" ]]; then
    run rm -rf "$ABRA_DIR/recipes/foobar"
    assert_success
  fi
}

@test "create new recipe" {
  run $ABRA recipe new foobar
  assert_success
  assert_output --partial "new recipe 'foobar' created"
  assert_exists "$ABRA_DIR/recipes/foobar"
}

# bats test_tags=slow
@test "create new app from new recipe" {
  run $ABRA recipe new foobar
  assert_success
  assert_exists "$ABRA_DIR/recipes/foobar"

  run $ABRA app new foobar \
    --no-input \
    --server "$TEST_SERVER" \
    --domain "foobar.$TEST_SERVER"
  assert_success
  assert_output --partial "new app 'foobar' created"

  run $ABRA app deploy "foobar.$TEST_SERVER" --no-input
  assert_success
  assert_output --partial 'using latest commit'
}

@test "create new recipe with git credentials" {
  run $ABRA recipe new foobar --git-name fooUser --git-email foo@example.com
  assert_success
  assert_output --partial "new recipe 'foobar' created"
  assert_exists "$ABRA_DIR/recipes/foobar"

  run bash -c 'git -C "$ABRA_DIR/recipes/foobar" log -n 1'
  assert_success
  assert_output --partial 'fooUser'
  assert_output --partial 'foo@example.com'
}
