From a976312e218dd3d781c223c808e8b069a65e0bfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesko=20Ansch=C3=BCtz?= Date: Sun, 22 Mar 2026 16:35:59 +0100 Subject: [PATCH] Dokumentiere erste Dev-Testschritte --- README.md | 1 + docs/TEST-CHECKLIST-DEV.md | 199 +++++++++++++++++++++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 docs/TEST-CHECKLIST-DEV.md diff --git a/README.md b/README.md index 1a7224f..3716a31 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ Die Trennung von `/srv/docker/infoboard-netboot` ist sinnvoll, damit: - API- und MQTT-Vertrag: `API-MQTT-VERTRAG.md` - Technologieentscheidungen: `TECH-STACK.md` - Entwicklungsleitfaden: `DEVELOPMENT.md` +- Erste Dev-Testliste: `docs/TEST-CHECKLIST-DEV.md` - Template-/Kampagnenkonzept: `docs/TEMPLATE-KONZEPT.md` - `layout_json` fuer `message_wall`: `docs/LAYOUT-JSON.md` - Provisionierungskonzept: `docs/PROVISIONIERUNGSKONZEPT.md` diff --git a/docs/TEST-CHECKLIST-DEV.md b/docs/TEST-CHECKLIST-DEV.md new file mode 100644 index 0000000..5953ccb --- /dev/null +++ b/docs/TEST-CHECKLIST-DEV.md @@ -0,0 +1,199 @@ +# Info-Board Neu - Erste Test-Checkliste fuer den Entwicklungsrechner + +## Ziel + +Diese Liste beschreibt die ersten sinnvollen Verifikationsschritte auf einem Entwicklungsrechner mit installiertem `go` und optional `make`. + +## 1. Tooling pruefen + +```bash +go version +make --version +docker --version +docker compose version +``` + +Erwartung: + +- `go` ist in Version `1.24.x` verfuegbar +- `make` ist vorhanden oder die Kommandos werden direkt mit `go` ausgefuehrt + +## 2. Repository holen und Status pruefen + +```bash +git clone git.az-it.net:az/morz-infoboard.git +cd morz-infoboard +git status +``` + +Erwartung: + +- sauberer Working Tree + +## 3. Backend bauen + +Mit Make: + +```bash +make build-backend +``` + +Oder direkt: + +```bash +cd server/backend +go build ./... +``` + +Erwartung: + +- Build ohne Fehler + +## 4. Backend-Tests laufen lassen + +```bash +cd server/backend +go test ./... +``` + +Erwartung: + +- Tests fuer `messagewall` und HTTP-Bausteine laufen gruen durch + +## 5. Backend lokal starten + +```bash +cd server/backend +go run ./cmd/api +``` + +Dann pruefen: + +```bash +curl http://127.0.0.1:8080/healthz +curl http://127.0.0.1:8080/api/v1 +curl http://127.0.0.1:8080/api/v1/meta +``` + +Erwartung: + +- `healthz` liefert `status=ok` +- `api/v1` liefert Basisinfos +- `api/v1/meta` listet den Tool-Endpunkt auf + +## 6. `message_wall`-Resolver testen + +```bash +curl -X POST http://127.0.0.1:8080/api/v1/tools/message-wall/resolve \ + -H 'Content-Type: application/json' \ + -d '{ + "source": "/media/banner.png", + "duration_seconds": 30, + "load_timeout_seconds": 15, + "on_error": "skip", + "layout": { + "version": 1, + "coordinate_space": { + "width": 300, + "height": 100, + "unit": "grid" + }, + "fit_mode": "cover", + "slots": [ + { "slot_id": "wall-r1-c1", "x": 0, "y": 0, "width": 100, "height": 100 }, + { "slot_id": "wall-r1-c2", "x": 100, "y": 0, "width": 100, "height": 100 }, + { "slot_id": "wall-r1-c3", "x": 200, "y": 0, "width": 100, "height": 100 } + ] + } + }' +``` + +Erwartung: + +- valide JSON-Antwort +- drei aufgeloeste Szenen mit passenden `crop`-Werten + +## 7. Agent bauen + +Mit Make: + +```bash +make build-agent +``` + +Oder direkt: + +```bash +cd player/agent +go build ./... +``` + +## 8. Agent-Tests laufen lassen + +```bash +cd player/agent +go test ./... +``` + +Erwartung: + +- Konfigurationstest laeuft erfolgreich + +## 9. Agent lokal mit Beispielkonfiguration starten + +```bash +cd player/agent +MORZ_INFOBOARD_CONFIG=../config/config.example.json go run ./cmd/agent +``` + +Erwartung: + +- Agent startet +- Log zeigt Screen-ID, Server-URL, MQTT-Broker und Heartbeat-Ticks + +## 10. Compose-Grundgeruest pruefen + +```bash +docker compose -f compose/server-stack.yml config +``` + +Optional starten: + +```bash +docker compose -f compose/server-stack.yml up -d +``` + +Erwartung: + +- Compose-Datei ist syntaktisch gueltig +- PostgreSQL und Mosquitto starten lokal + +## 11. Ansible-Dateien kurz pruefen + +```bash +ansible-playbook --syntax-check -i ansible/inventory.example.yml ansible/site.yml +``` + +Erwartung: + +- Syntax ok + +## 12. Falls etwas fehlschlaegt + +Dann zuerst pruefen: + +- Go-Version korrekt? +- lokale Pfade korrekt? +- `MORZ_INFOBOARD_CONFIG` richtig gesetzt? +- Port `8080` frei? +- Docker/Compose installiert? +- Ansible installiert? + +## Reihenfolge fuer sinnvolle erste Fehlerbehebung + +1. `go test ./...` in `server/backend` +2. `go test ./...` in `player/agent` +3. Backend-Endpunkte per `curl` +4. Agent mit Beispielconfig +5. Compose-Check +6. Ansible-Syntaxcheck