#!/usr/bin/env bash
# Prepare l'environnement de test 100% en conteneur puis lance la suite.
set -euo pipefail
cd "${APP_DIR:-/app}"

# APP_KEY fournie par le compose (env de TEST fixe).
: "${APP_KEY:?APP_KEY doit etre fournie par le compose}"

# Piege Passport : cles RSA obligatoires pour les tests auth.
php artisan passport:keys --force

# Piege public/build : manifeste Vite stub (les tests Feature ne fetchent pas
# l'asset -> un manifeste avec les entrees suffit). Couvre les 2 emplacements.
mkdir -p public/build/.vite
MANIFEST='{
  "resources/js/app.jsx":   {"file":"assets/app.js",  "isEntry":true, "src":"resources/js/app.jsx"},
  "resources/sass/app.scss": {"file":"assets/app.css", "isEntry":true, "src":"resources/sass/app.scss"}
}'
printf '%s' "$MANIFEST" > public/build/manifest.json
printf '%s' "$MANIFEST" > public/build/.vite/manifest.json

# Base de test prete (les tests non-RefreshDatabase ont besoin des tables).
php artisan migrate --force

# La suite, en conteneur. "$@" permet de passer des filtres.
exec php artisan test "$@"
