Files
Panama/tests/quickshell/screen-intelligence-helper-contract.sh

34 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
fail() {
printf 'screen intelligence helper contract: %s\n' "$1" >&2
exit 1
}
project_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
helper="$project_root/config/dot/quickshell/scripts/screen-intelligence"
fixture_dir="$(mktemp -d)"
trap 'rm -rf "$fixture_dir"' EXIT
[[ -x "$helper" ]] || fail 'recognition helper is missing or not executable'
command -v magick >/dev/null || fail 'ImageMagick is required to build the OCR fixture'
probe="$($helper probe)"
jq -e '.tesseract == true and .zbar == true' <<<"$probe" >/dev/null \
|| fail 'Tesseract and ZBar are not ready'
fixture="$fixture_dir/panama-ocr.png"
magick -size 1600x260 xc:white \
-gravity center -fill black -font DejaVu-Sans -pointsize 72 \
-annotate 0 'PANAMA SCREEN INTELLIGENCE' "$fixture"
result="$($helper analyze-file "$fixture")"
jq -e '.ok == true' <<<"$result" >/dev/null || fail "recognition failed: $(jq -r .error <<<"$result")"
text="$(jq -r .text <<<"$result" | tr '\n' ' ' | tr -s ' ')"
[[ "$text" == *'PANAMA SCREEN INTELLIGENCE'* ]] \
|| fail "literal fixture text was not recognized: $text"
printf 'screen intelligence helper contract: PASS\n'