# Test-Umgebung: woran die Editor-Suiten hängen (Karte t_1e82f747, 20.10.2026) Kurzreferenz für die nächste Person: was die zwei zuvor „immer rot"-Suiten brauchen, warum sie in einem nackten Klon rot/skip waren, und wie man sie grün fährt. Für die Pack-Textur-Zuordnung selbst siehe `PACK_TEXTURE_MAPPING.md` im **Client-Repo** (verbindlich). ## tests/test_updater.gd (75 Checks) Braucht: nur das `git`-Binary (keine Identität — die Suite setzt `user.name`/`user.email` lokal in ihren Temp-Repos; kein Netz, alles läuft gegen ein Bare-Repo unter `user://test_updater_…`). **Früherer Dauer-Fehler (behoben):** der Lauf nutzte `user://test_updater_` als Verzeichnis — `ticks_msec` zählt nur seit Godot-Start und ist bei CLI-Läufen immer eine kleine Zahl (z. B. 115). Die Namen kollidierten mit Alt-Läufen, die sich nicht löschen ließen (git macht `.git`-Pack-Dateien read-only), und `git init` lief dann in einer ALTEN Sitzung: remote „already exists", alter Arbeitsbaum, rote Setup-Zeilen ohne echten Bug. Jetzt: - Verzeichnisname = Unix-Zeit + `ticks_usec` (pro Run einzigartig). - Aufräumen erzwingt Schreibrechte (`chmod -R u+w`, **blocking** via `OS.execute` mit output-Array — die 2-Argument-Variante ist in Godot 4 asynchron!) und löscht inkl. versteckter Ordner (`DirAccess.include_hidden = true`, `.git` ist versteckt) mit `rm -rf`-Rückfallebene. - Fehlerhafte git-Aufrufe geben den echten git-Fehlertext aus (`git [dir] args → code=…`), nicht nur eine rote Zahl. ## tests/test_glb_view.gd (48 Checks) Braucht: ein **Nachbar-Repo** mit `assets/objekte` (Mesh-Lager) — `scopedvr-client` oder `scopedvr-match-server`. Gesucht wird wie in `tools/sync_objects.sh`: 1. Env `SCOPEDVR_CLIENT_DIR` / `SCOPEDVR_MATCH_SERVER_DIR` (absolute Pfade werden testseitig in `../`-Pfade umgerechnet — `glb_quellen` müssen basis-relativ sein, `String.path_join` ketten Absolutpfade nur an), 2. dann `../`- und `../../`-Siblings relativ zum Editor-Repo. Ohne Fund: **klare SKIP-Zeilen + Exit 0** (kein rotes Krachen). Die GLB-Quellen werden zur Laufzeit in `ProjectSettings` gesetzt (`scopedvr/editor/glb_quellen`) — kein Eingriff in `src/`. Textur-Erwartungen (Stand `d0d4fbd`): die Pack-GLBs tragen ihre ORIGINAL-Texturen (GLTFDocument löst die externen URIs selbst auf, je Parse eine eigene ImageTexture-Instanz — der `_camo_tex_cache` bleibt leer). Die alten Camo-Erwartungen (`desert_multicam_1/2.png`, geteilte Cache-Instanz) sind entfernt. Geprüft wird jetzt: alle Flächen `albedo_texture != null`, Kante = Palette-Größe (1024²), reine Zuordnung `pack_datei_fuer` (military_base(+_00x) → `Demonstration_Textures1.png`, picture_1/2 → `Demonstration_picture_N.png` 2048²) und die Pack-Dateien im gefundenen Nachbar-Repo. Schnelltest in diesem Container: cd /scopedvr-map-editor /opt/data/home/bin/godot4 --headless --path . --import # Pflicht vor jeder -s-Suite /opt/data/home/bin/godot4 --headless --path . --script res://tests/test_glb_view.gd # ohne Nachbar-Repo: SKIP-Zeilen; mit: ALL OK: 48 checks ## test_gui_smoke (F5) — vorbestehend rot, NICHT Teil von t_1e82f747 `F5: Karte-testen-Flow angesprungen` + `F5: Fehler-Dialog im nicht-gefunden-Zweig geöffnet` (2/89) schlagen auch am jungfräulichen `0adb161` fehl (per `git stash`-Verfahren verifiziert, 20.10.). Ursache ist nicht die Test-Pflege dieser Karte; Grenze der Karte war ausdrücklich nur `test_updater.gd` + `test_glb_view.gd` + Notizen.