version: '3'

# This files purpose is to run the PHPunit tests locally.
# Prerequisites:
# Run "composer install" to generate a composer.lock file and install PHP dev dependencies.
#
# Install docker and docker compose and than just run:
# docker compose up

# To live debug in VSCode add this launch configuration to your .vscode/launch.json.
# It assumes that the WordPress root-dir is your workspace root.
#
# {
#   "name": "Listen for PHPUnit",
#   "type": "php",
#   "request": "launch",
#   "port": 9003,
#   "pathMappings": {
#    "/app/": "${workspaceRoot}/wp-content/plugins/activitypub-event-bridge/",
#    "/tmp/wordpress/": "${workspaceRoot}/"
#   },
# },

services:
  test-db:
    image: mariadb
    environment:
      MARIADB_DATABASE: wordpress-test
      MARIADB_ROOT_PASSWORD: wordpress-test
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      start_period: 2s
      interval: 1s
      timeout: 5s
      retries: 10

  test-php:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      test-db:
        condition: service_healthy
    links:
      - test-db
    volumes:
      - .:/app
    command: ["composer", "run-script", "test-debug"]
    extra_hosts:
      - "host.docker.internal:host-gateway"