spawn/test/fixtures/_shared_agent_assertions.sh
A 9f172ffd12
fix: resolve 18 test/run.sh failures and expand sprite agent coverage (#1498)
- Add SPAWN_SKIP_API_VALIDATION=1 and SPAWN_SKIP_GITHUB_AUTH=1 to
  sprite test environment so verify_openrouter_key() doesn't make real
  HTTP calls with the fake test key (which gets 401, clears the key,
  and falls into OAuth — causing all sprite assertions to fail)
- Update agent iteration lists from stale "claude openclaw nanoclaw" to
  current "claude openclaw codex opencode kilocode zeroclaw"
- Remove dead nanoclaw case from _assert_agent_specific
- Remove 5 dead agent cases (nanoclaw, cline, gptme, plandex, continue)
  from _shared_agent_assertions.sh, add zeroclaw

Result: 108 passed, 0 failed (was: 48 passed, 18 failed)

Agent: code-health

Co-authored-by: B <6723574+louisgv@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-20 00:06:06 -05:00

51 lines
1.9 KiB
Bash

#!/bin/bash
# Shared per-agent install assertions
# Verifies each agent script uses the correct install method
#
# Sourced by mock.sh _run_agent_assertions(). Expects:
# MOCK_LOG — path to the mock call log
# PASSED / FAILED — counters (updated in-place)
# GREEN / RED / NC — color codes
# Internal: assert a grep pattern appears in MOCK_LOG
_assert_install_pattern() {
local pattern="$1"
local msg="$2"
if grep -qE "${pattern}" "${MOCK_LOG}" 2>/dev/null; then
printf '%b\n' " ${GREEN}${NC} ${msg}"
PASSED=$((PASSED + 1))
else
printf '%b\n' " ${RED}${NC} ${msg}"
FAILED=$((FAILED + 1))
fi
}
assert_agent_install() {
local cloud="$1"
local agent="$2"
case "$agent" in
claude)
# install_claude_code finalization always runs "claude install --force"
# (mock claude binary is pre-installed, so curl installer is skipped)
_assert_install_pattern "claude.*install" "installs claude code" ;;
openclaw)
# npm install -g openclaw OR bun install -g openclaw (varies by cloud)
_assert_install_pattern "install.*openclaw" "installs openclaw via npm/bun" ;;
codex)
# npm install -g @openai/codex
_assert_install_pattern "npm.*install.*codex" "installs codex via npm" ;;
opencode)
# curl to download opencode tarball (via opencode_install_cmd)
_assert_install_pattern "opencode" "installs opencode" ;;
kilocode)
# npm install -g @kilocode/cli
_assert_install_pattern "npm.*install.*kilocode" "installs kilocode via npm" ;;
zeroclaw)
# curl installer from zeroclaw-labs/zeroclaw repo
_assert_install_pattern "zeroclaw" "installs zeroclaw" ;;
*)
# Unknown agent — skip assertion (no failure)
return 0 ;;
esac
}