#!/usr/bin/env bash
set -euo pipefail

SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
E2E_DIR="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
# shellcheck source=../e2e-snapshot-contract.sh
source "${E2E_DIR}/e2e-snapshot-contract.sh"

: "${IPZ_E2E_RUN_ID:?IPZ_E2E_RUN_ID is required so the compatibility client can target its own disposable stack}"
PROJECT="${1:?browser project is required}"
YOAST_VERSION="${IPZ_COMPAT_YOAST_VERSION:-25.6}"
RUN_ID="$(printf %s "${IPZ_E2E_RUN_ID}" | tr '[:upper:]' '[:lower:]' | tr -cs 'a-z0-9_.-' '-')"
RUN_ID="${RUN_ID#-}"
RUN_ID="${RUN_ID%-}"
WORDPRESS_CONTAINER="acf-table-e2e-wordpress-${RUN_ID}"
DATABASE_CONTAINER="acf-table-e2e-database-${RUN_ID}"
NETWORK="acf-table-e2e-network-${RUN_ID}"
OWNERSHIP_LABEL="io.presszone.ipz-e2e.run=${RUN_ID}"

podman run --rm --label "${OWNERSHIP_LABEL}" --user 0 --network "${NETWORK}" --volumes-from "${WORDPRESS_CONTAINER}" \
  --env "WORDPRESS_DB_HOST=${DATABASE_CONTAINER}" --env WORDPRESS_DB_NAME=wordpress \
  --env WORDPRESS_DB_USER=wordpress --env WORDPRESS_DB_PASSWORD=wordpress \
  "${IPZ_WORDPRESS_CLI_IMAGE}" wp plugin install \
  "https://downloads.wordpress.org/plugin/wordpress-seo.${YOAST_VERSION}.zip" --activate --allow-root

podman run --rm --label "${OWNERSHIP_LABEL}" --user 0 --network "${NETWORK}" --volumes-from "${WORDPRESS_CONTAINER}" \
  --env "WORDPRESS_DB_HOST=${DATABASE_CONTAINER}" --env WORDPRESS_DB_NAME=wordpress \
  --env WORDPRESS_DB_USER=wordpress --env WORDPRESS_DB_PASSWORD=wordpress \
  "${IPZ_WORDPRESS_CLI_IMAGE}" wp plugin get wordpress-seo --fields=name,status,version --format=json --allow-root

exec /home/user/.local/share/mise/installs/pnpm/11.5.2/pnpm --dir "${E2E_DIR}" exec playwright test \
  --config=playwright.config.js compatibility/integration-presence.spec.js \
  --project="${PROJECT}" --grep 'Yoast active' --retries=0
