#!/bin/sh

export SOURCE_TREE=${PWD}

if [ -z "$ADTTMP" ]; then
  ADTTMP=$(mktemp -d)
  cleanup() {
    rm -rf "$ADTTMP"
  }
  trap cleanup INT TERM EXIT
fi

cd $ADTTMP

exec 2>&1
set -ex

cd /usr/share/gitlab
su gitlab -c 'truncate -s 0 Gemfile.lock'

. /etc/gitlab/gitlab-debian.conf
export RAILS_ENV=test
export DB=postgres
export INCLUDE_TEST_DEPENDS="true"

su gitlab -c "bundle install --local"
su gitlab -c "mkdir -p tmp/tests/gitlab-shell"
export dbname=gitlab_test
export gitlab_user=gitlab
su postgres -c "createdb $dbname"
# enable the pg_trgm extension
su postgres -c "psql -d $dbname -c \"CREATE EXTENSION IF NOT EXISTS pg_trgm;\"" || {
  exit 1
  }
# enable the btree_gist extension
su postgres -c "psql -d $dbname -c \"CREATE EXTENSION IF NOT EXISTS btree_gist;\"" || {
  exit 1
  }
# Allow gitlab user required permissions
su postgres -c "psql -c \"GRANT ALL on schema public TO ${gitlab_user};\""
su postgres -c "psql -c \"GRANT ALL on database ${dbname} TO ${gitlab_user};\""
# gitlab user need to create files here
chown -R ${gitlab_user}: /usr/share/gitlab/db
su gitlab -c "bundle exec rake db:migrate"
su gitlab -c "bundle exec rake -f ${SOURCE_TREE}/debian/tests/spec.rake"
#config 2/2 failed, controllers many failed