Files
ai-setup/test_isolated.sh
Виталий Никитенко 526b745cb3 refactor: switch ai-kimi to official Kimi API via Claude Code
- Replace native kimi CLI launcher with Claude Code + Kimi backend

- Update README description and permission flags

- Update test_isolated.sh and tests/test_fixes.sh for new ai-kimi logic
2026-06-02 20:03:15 +07:00

67 lines
2.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# test_isolated.sh — проверка логики автоустановки без реальных скачиваний
# Использует mock для curl, чтобы проверить, что скрипты вызывают правильные URL
set -euo pipefail
TMPDIR=$(mktemp -d)
trap 'rm -rf "$TMPDIR"' EXIT
# Генерируем скрипты из ai-setup.sh в изолированную директорию
BIN_DIR="$TMPDIR/bin"
mkdir -p "$BIN_DIR"
# Извлекаем ai-gpt
awk '/^cat > "\$BIN_DIR\/ai-gpt"/,/^GPTEOF/' ai-setup.sh | \
sed "s|\\\$BIN_DIR|$BIN_DIR|g" | bash
chmod +x "$BIN_DIR/ai-gpt"
# Извлекаем ai-kimi
awk '/^cat > "\$BIN_DIR\/ai-kimi"/,/^KIMIEOF/' ai-setup.sh | \
sed "s|\\\$BIN_DIR|$BIN_DIR|g" | bash
chmod +x "$BIN_DIR/ai-kimi"
echo "=== Test 1: ai-gpt calls codex install URL when missing ==="
MOCK_LOG="$TMPDIR/mock_curl.log"
# Создаём mock curl, который логирует вызовы
cat > "$TMPDIR/curl" << CURLEOF
#!/usr/bin/env bash
echo "\$@" >> "$MOCK_LOG"
# Притворяемся, что install.sh отработал (создаём фейковый codex)
if [[ "\$*" == *"chatgpt.com/codex/install.sh"* ]]; then
mkdir -p "\$HOME/.npm-global/bin"
echo '#!/usr/bin/env bash
echo "codex mock \$*"' > "\$HOME/.npm-global/bin/codex"
chmod +x "\$HOME/.npm-global/bin/codex"
fi
CURLEOF
chmod +x "$TMPDIR/curl"
# Запускаем ai-gpt с mock curl (чистый PATH, без системного codex)
HOME="$TMPDIR" PATH="$TMPDIR:/usr/bin:/bin" "$BIN_DIR/ai-gpt" --version 2>&1 || true
if grep -q "chatgpt.com/codex/install.sh" "$MOCK_LOG"; then
echo "[PASS] ai-gpt вызвал установку Codex"
else
echo "[FAIL] ai-gpt НЕ вызвал установку Codex"
echo "curl log:"
cat "$MOCK_LOG" 2>/dev/null || echo "(пусто)"
exit 1
fi
echo ""
echo "=== Test 2: ai-kimi is a Claude Code launcher with Kimi backend ==="
if grep -q 'ANTHROPIC_BASE_URL' "$BIN_DIR/ai-kimi" \
&& grep -q 'api.kimi.com/coding' "$BIN_DIR/ai-kimi" \
&& grep -q 'claude --dangerously-skip-permissions' "$BIN_DIR/ai-kimi"; then
echo "[PASS] ai-kimi запускает claude с официальным Kimi API"
else
echo "[FAIL] ai-kimi должен запускать claude с api.kimi.com/coding"
exit 1
fi
echo ""
echo "=== All tests passed ==="