30 lines
1.3 KiB
Bash
Executable File
30 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
here="$(cd "$(dirname "$0")" && pwd)"
|
|
check="$here/check-route-prefixes.sh"
|
|
tmp="$(mktemp -d)"
|
|
trap 'rm -rf "$tmp"' EXIT
|
|
|
|
mk() { mkdir -p "$tmp/$1/deploy"; printf '%b' "$2" > "$tmp/$1/deploy/routes.tsv"; echo "$tmp/$1"; }
|
|
expect_fail() {
|
|
if "$check" "$1" >/dev/null 2>"$tmp/err"; then echo "FAIL: $2 nicht erkannt" >&2; exit 1; fi
|
|
grep -q "$3" "$tmp/err" || { echo "FAIL: $2: meldung fehlt ($3)" >&2; cat "$tmp/err" >&2; exit 1; }
|
|
}
|
|
|
|
"$check" "$here/.." >/dev/null || { echo "FAIL: repo-register abgelehnt" >&2; exit 1; }
|
|
|
|
expect_fail "$(mk dup 'dms\t/api/dms/v1\nmail\t/api/dms/v1\n')" "duplikat" "ueberschneiden"
|
|
expect_fail "$(mk nested 'dms\t/api/dms\nmail\t/api/dms/mail\n')" "verschachtelt" "ueberschneiden"
|
|
expect_fail "$(mk bad 'dms\tapi/dms\n')" "praefix ohne fuehrenden slash" "ungueltiges praefix"
|
|
expect_fail "$(mk traversal 'dms\t/api/../x\n')" "punktsegment" "ungueltiges praefix"
|
|
expect_fail "$(mk trailing 'dms\t/api/dms/\n')" "slash am ende" "ungueltiges praefix"
|
|
|
|
drift="$tmp/drift"
|
|
mkdir -p "$drift/deploy" "$drift/dms/internal/routeprefix"
|
|
printf 'dms\t/api/dms/v1\n' > "$drift/deploy/routes.tsv"
|
|
printf 'const DefaultPrefix = "/api/other/v1"\n' > "$drift/dms/internal/routeprefix/routeprefix.go"
|
|
expect_fail "$drift" "abweichender code-default" "weicht vom Register"
|
|
|
|
echo "check-route-prefixes_test ok"
|