- dms/ai/workflow: qa0x-Pakete nach internal/gates/<thema> verschoben, Paketname = Thema
- internal/migration{acl,audit,...} -> internal/migration/{acl,audit,...}
- Importpfade, Gate-Skripte und zwei relative Migrationspfade angepasst
- keine Logikaenderung; mail-Gates bewusst unveraendert (pfadabhaengig)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
44 lines
2.0 KiB
Bash
Executable File
44 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# QA-03: fuehrt die automatisierten Pruefungen aller Kacheln des Epics
|
|
# "Dokumentenkern" aus (Go-Pakete gegen echte PostgreSQL, Frontend-Suiten mit
|
|
# vitest) und gibt eine Ergebnistabelle aus. Exit 1, sobald eine Suite scheitert.
|
|
# qa03-epic-gate.sh [ROOT] Env: TEST_TENANT_DSN, QA03_SKIP_WEB=1 ueberspringt Frontend
|
|
set -uo pipefail
|
|
root="${1:-.}"
|
|
cd "$root"
|
|
|
|
declare -a rows
|
|
fail=0
|
|
record() { rows+=("$1|$2|$3"); [ "$3" = PASS ] || fail=1; }
|
|
|
|
go_suite() { # ticket packages...
|
|
local ticket="${1//\//_}"; local label="$1"; shift
|
|
if (cd dms && go test -count=1 "$@" >"/tmp/qa03-$ticket.log" 2>&1); then record "$label" "go: $*" PASS; else record "$label" "go: $*" FAIL; tail -20 "/tmp/qa03-$ticket.log" >&2; fi
|
|
}
|
|
|
|
go_suite DOC-01/02/04 ./internal/upload/ ./internal/thumbnail/ ./internal/documenttype/
|
|
go_suite DOC-05 ./internal/documentapi/
|
|
go_suite DOC-06 ./internal/pdfconvert/
|
|
go_suite DOC-08 ./internal/export/
|
|
go_suite DOC-10 ./internal/folder/ ./internal/folderapi/
|
|
go_suite DOC-11/12 ./internal/trash/ ./internal/trashapi/
|
|
go_suite DOC-14 ./internal/docmerge/
|
|
go_suite DOC-15 ./internal/bulkedit/ ./internal/bulkeditapi/
|
|
go_suite QA-01 ./internal/testcorpus/
|
|
go_suite QA-03 ./internal/gates/documentcore/
|
|
|
|
if [ "${QA03_SKIP_WEB:-0}" != 1 ]; then
|
|
for d in shl dms-upload dms-browser pdf-viewer; do
|
|
case "$d" in shl) t="SHL-01";; dms-upload) t="DOC-03";; dms-browser) t="DOC-10/12/15";; pdf-viewer) t="DOC-05/13";; esac
|
|
if (cd "web/$d" && { [ -f package-lock.json ] && npm ci --no-audit --no-fund --loglevel=error || npm install --no-audit --no-fund --loglevel=error; } >"/tmp/qa03-web-$d.log" 2>&1 && npx vitest run >>"/tmp/qa03-web-$d.log" 2>&1); then
|
|
record "$t" "web/$d: $(grep -E 'Tests ' "/tmp/qa03-web-$d.log" | tail -1 | sed 's/^ *//')" PASS
|
|
else
|
|
record "$t" "web/$d" FAIL; tail -20 "/tmp/qa03-web-$d.log" >&2
|
|
fi
|
|
done
|
|
fi
|
|
|
|
printf '\n%-14s %-6s %s\n' Ticket Ergebnis Suite
|
|
for r in "${rows[@]}"; do IFS='|' read -r t s res <<<"$r"; printf '%-14s %-6s %s\n' "$t" "$res" "$s"; done
|
|
exit "$fail"
|