Dokumentiere erste Dev-Testschritte
This commit is contained in:
parent
bf993a5945
commit
a976312e21
2 changed files with 200 additions and 0 deletions
|
|
@ -17,6 +17,7 @@ Die Trennung von `/srv/docker/infoboard-netboot` ist sinnvoll, damit:
|
||||||
- API- und MQTT-Vertrag: `API-MQTT-VERTRAG.md`
|
- API- und MQTT-Vertrag: `API-MQTT-VERTRAG.md`
|
||||||
- Technologieentscheidungen: `TECH-STACK.md`
|
- Technologieentscheidungen: `TECH-STACK.md`
|
||||||
- Entwicklungsleitfaden: `DEVELOPMENT.md`
|
- Entwicklungsleitfaden: `DEVELOPMENT.md`
|
||||||
|
- Erste Dev-Testliste: `docs/TEST-CHECKLIST-DEV.md`
|
||||||
- Template-/Kampagnenkonzept: `docs/TEMPLATE-KONZEPT.md`
|
- Template-/Kampagnenkonzept: `docs/TEMPLATE-KONZEPT.md`
|
||||||
- `layout_json` fuer `message_wall`: `docs/LAYOUT-JSON.md`
|
- `layout_json` fuer `message_wall`: `docs/LAYOUT-JSON.md`
|
||||||
- Provisionierungskonzept: `docs/PROVISIONIERUNGSKONZEPT.md`
|
- Provisionierungskonzept: `docs/PROVISIONIERUNGSKONZEPT.md`
|
||||||
|
|
|
||||||
199
docs/TEST-CHECKLIST-DEV.md
Normal file
199
docs/TEST-CHECKLIST-DEV.md
Normal file
|
|
@ -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
|
||||||
Loading…
Add table
Reference in a new issue