#!/usr/bin/env bash
# Runs omg/factory tests locally against a throwaway forge_corp.api.routes shim (symlinks + two tiny stubs).
set -euo pipefail
W=$(cd "$(dirname "$0")/.." && pwd); S=$(mktemp -d /tmp/factory-shim-XXXX); R=$S/forge_corp/api/routes
mkdir -p "$R"; touch "$S/forge_corp/__init__.py" "$S/forge_corp/api/__init__.py" "$R/__init__.py"
ln -s "$W/omg/factory/games_library.py" "$R/games_library.py"; ln -s "$W/omg/factory/library_search.py" "$R/library_search.py"
cat > "$R/games_room.py" <<'P'
import base64
def _data_url(mime, data): return f"data:{mime};base64,{base64.b64encode(data).decode()}"
P
cat > "$R/games_garage.py" <<'P'
def _card_text(card, prompt=""):
    w = getattr(card, "world", None)
    return " ".join(str(p) for p in [getattr(card, "title", ""), getattr(card, "pitch", ""), getattr(card, "genre", ""),
        getattr(card, "core_loop", ""), getattr(card, "first_version", ""), " ".join(getattr(card, "mood", None) or []),
        getattr(w, "setting", None) or "", getattr(w, "look", None) or "", prompt or ""] if p)
P
export PYTHONPATH=$S
if [ "${1:-}" = evidence ]; then python3 "$W/integrations/search_wiring_evidence.py"
else uv run --with pytest python -m pytest "$W/omg/factory" -q -p no:cacheprovider; fi
find "$S" -delete
