Files
codex-crew/tests/test-models.sh
T

40 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu
HERE=$(cd "$(dirname "$0")" && pwd)
RUN=$HERE/../scripts/codex-models.sh
TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT
# stub codex that returns fake catalog
mkdir -p "$TMP/bin"
cat > "$TMP/bin/codex" <<'STUB'
#!/usr/bin/env bash
if [[ "$1" == "debug" && "$2" == "models" ]]; then
cat <<'JSON'
{"models":[
{"slug":"gpt-5.6-sol","display_name":"GPT-5.6-Sol","visibility":"list","default_reasoning_level":"low","supported_reasoning_levels":[{"effort":"low"},{"effort":"high"}],"description":"x"},
{"slug":"gpt-reserve","visibility":"hide","default_reasoning_level":"medium","supported_reasoning_levels":[{"effort":"low"}],"description":"y"},
{"slug":"gpt-5.5","display_name":"GPT-5.5","visibility":"list","default_reasoning_level":"medium","supported_reasoning_levels":[{"effort":"low"},{"effort":"medium"}],"description":"z"}
]}
JSON
else echo "stub: unknown args $*" >&2; exit 1; fi
STUB
chmod +x "$TMP/bin/codex"
# 1. filters hide, keeps list (via stub, PATH hoist)
OUT=$(PATH="$TMP/bin:$PATH" "$RUN")
echo "$OUT" | grep -q "gpt-5.6-sol"
echo "$OUT" | grep -q "gpt-5.5"
if echo "$OUT" | grep -q "gpt-reserve"; then echo "FAIL: hide leaked"; exit 1; fi
echo "$OUT" | grep -q '"levels": \['
echo "models test: PASS (stubbed)"
# 2. --stdin path piped fixture
cat > "$TMP/fake.json" <<'JSON'
{"models":[{"slug":"a","visibility":"list","display_name":"A","default_reasoning_level":"low","supported_reasoning_levels":[{"effort":"low"}],"description":"d"}]}
JSON
OUT2=$(cat "$TMP/fake.json" | "$RUN" --stdin)
echo "$OUT2" | grep -q '"slug": "a"'
echo "stdin test: PASS"
echo "ALL PASS"