- 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
67 lines
2.3 KiB
Bash
67 lines
2.3 KiB
Bash
#!/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 ==="
|