test:
  image: ${CI_REGISTRY}/leenooks/php:8.1-fpm-alpine-ldap-test

  stage: test

  # NOTE: This service is dependant on project file configuration, which is not there if the cache was deleted
  #       resulting in the testing to fail on the first run.
  services:
  - name: osixia/openldap:latest
    alias: ldap
    command: ["--loglevel","debug"]

  variables:
    LDAP_SEED_INTERNAL_LDIF_PATH: "${CI_PROJECT_DIR}/tests/server/openldap/data"
    LDAP_SEED_INTERNAL_SCHEMA_PATH: "${CI_PROJECT_DIR}/tests/server/openldap/schema"
    LDAP_BASE_DN: "dc=Test"
    LDAP_DOMAIN: "Test"
    LDAP_ADMIN_PASSWORD: test
    LDAP_HOST: ldap
    LDAP_PORT: 389
    #CI_DEBUG_SERVICES: "true"

  tags:
  - php
  only:
  - BRANCH-2.0

  before_script:
  - mv .env.testing .env

  # Install npm and dependancies
  - npm i
  - npm run prod

  # Install Composer and project dependencies.
  - mkdir -p ${COMPOSER_HOME}
  - if [ -n "$GITHUB_TOKEN" ]; then cat $GITHUB_TOKEN |base64 -d > ${COMPOSER_HOME}/auth.json; fi
  - composer install

  # Generate an application key. Re-cache.
  - php artisan key:generate

  script:
  # Sleep if we need to, in case we want to jump in and see what is going on during the test
  - if [ -n "$DEBUG_PAUSE" ]; then echo "Pausing for $DEBUG_PAUSE seconds, so you can jump into the containers"; sleep $DEBUG_PAUSE; fi
  # run laravel tests
  - XDEBUG_MODE=coverage php vendor/bin/phpunit --coverage-text --colors=never

  # run frontend tests
  # if you have any task for testing frontend
  # set it in your package.json script
  # comment this out if you don't have a frontend test
  # npm test
