#!/usr/bin/env bats

load test_helper

setup() {
  global_setup
  create_app
  touch /home/dokku/.ssh/known_hosts
  chown dokku:dokku /home/dokku/.ssh/known_hosts
}

teardown() {
  rm -f /home/dokku/.ssh/id_rsa.pub || true
  destroy_app
  global_teardown
}

@test "(git) git:from-archive [missing]" {
  run /bin/bash -c "dokku git:from-archive $TEST_APP"
  echo "output: $output"
  echo "status: $status"
  assert_failure
}

@test "(git) git:from-archive [invalid archive type]" {
  run /bin/bash -c "dokku git:from-archive --archive-type tarball $TEST_APP http://example.com/src.tar"
  echo "output: $output"
  echo "status: $status"
  assert_failure
}

@test "(git) git:from-archive [tar]" {
  run /bin/bash -c "dokku git:from-archive $TEST_APP https://github.com/dokku/smoke-test-app/releases/download/2.0.0/smoke-test-app.tar"
  echo "output: $output"
  echo "status: $status"
  assert_success
  assert_http_success "http://${TEST_APP}.${DOKKU_DOMAIN}"
}

@test "(git) git:from-archive [tar.gz]" {
  run /bin/bash -c "dokku git:from-archive --archive-type tar.gz $TEST_APP https://github.com/dokku/smoke-test-app/archive/2.0.0.tar.gz"
  echo "output: $output"
  echo "status: $status"
  assert_success
  assert_http_success "http://${TEST_APP}.${DOKKU_DOMAIN}"
}

@test "(git) git:from-archive [zip]" {
  run /bin/bash -c "dokku git:from-archive --archive-type zip $TEST_APP https://github.com/dokku/smoke-test-app/archive/2.0.0.zip"
  echo "output: $output"
  echo "status: $status"
  assert_success
  assert_http_success "http://${TEST_APP}.${DOKKU_DOMAIN}"
}

@test "(git) git:from-archive [stdin-file]" {
  run /bin/bash -c "curl -sL https://github.com/dokku/smoke-test-app/releases/download/2.0.0/smoke-test-app.tar -o /tmp/smoke-test-app.tar"
  echo "output: $output"
  echo "status: $status"
  assert_success

  run /bin/bash -c "cat /tmp/smoke-test-app.tar | dokku git:from-archive $TEST_APP  --"
  echo "output: $output"
  echo "status: $status"
  assert_success
  assert_http_success "http://${TEST_APP}.${DOKKU_DOMAIN}"
}

@test "(git) git:from-archive [stdin-curl]" {
  run /bin/bash -c "curl -sL https://github.com/dokku/smoke-test-app/releases/download/2.0.0/smoke-test-app.tar | dokku git:from-archive $TEST_APP  --"
  echo "output: $output"
  echo "status: $status"
  assert_success
  assert_http_success "http://${TEST_APP}.${DOKKU_DOMAIN}"
}
