claude-code-remote-remake/test-complete-flow.sh

120 lines
3.7 KiB
Bash
Raw 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.

#!/bin/bash
# 完整的端到端测试脚本
# Complete end-to-end test script
set -e
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$PROJECT_DIR"
echo "🧪 Claude Code Remote - 完整端到端测试"
echo "======================================"
# 1. 检查服务状态
echo "📋 1. 检查服务状态"
echo -n " ngrok服务: "
if pgrep -f "ngrok http" > /dev/null; then
echo "✅ 运行中"
NGROK_URL=$(curl -s http://localhost:4040/api/tunnels | jq -r '.tunnels[0].public_url' 2>/dev/null || echo "获取失败")
echo " ngrok URL: $NGROK_URL"
else
echo "❌ 未运行"
fi
echo -n " Telegram webhook: "
if pgrep -f "start-telegram-webhook" > /dev/null; then
echo "✅ 运行中"
else
echo "❌ 未运行"
fi
# 2. 检查配置文件
echo ""
echo "📋 2. 检查配置文件"
echo -n " ~/.claude/settings.json: "
if [ -f ~/.claude/settings.json ]; then
echo "✅ 存在"
echo " Hooks配置:"
cat ~/.claude/settings.json | jq '.hooks' 2>/dev/null || echo " 解析失败"
else
echo "❌ 不存在"
fi
echo -n " .env文件: "
if [ -f .env ]; then
echo "✅ 存在"
echo " Telegram配置:"
grep "TELEGRAM_" .env | grep -v "BOT_TOKEN" | while read line; do
echo " $line"
done
else
echo "❌ 不存在"
fi
# 3. 测试hook脚本
echo ""
echo "📋 3. 测试hook脚本执行"
echo " 运行: node claude-hook-notify.js completed"
node claude-hook-notify.js completed
# 4. 检查最新session
echo ""
echo "📋 4. 检查最新创建的session"
if [ -d "src/data/sessions" ]; then
LATEST_SESSION=$(ls -t src/data/sessions/*.json 2>/dev/null | head -1)
if [ -n "$LATEST_SESSION" ]; then
echo " 最新session: $(basename "$LATEST_SESSION")"
echo " 内容摘要:"
cat "$LATEST_SESSION" | jq -r '"\tToken: \(.token)\n\tType: \(.type)\n\tCreated: \(.created)\n\tTmux Session: \(.tmuxSession)"' 2>/dev/null || echo " 解析失败"
else
echo " ❌ 未找到session文件"
fi
else
echo " ❌ sessions目录不存在"
fi
# 5. 测试Telegram Bot连接
echo ""
echo "📋 5. 测试Telegram Bot连接"
if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then
echo " 发送测试消息到个人聊天..."
RESPONSE=$(curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-H "Content-Type: application/json" \
-d "{\"chat_id\": $TELEGRAM_CHAT_ID, \"text\": \"🧪 端到端测试完成\\n\\n时间: $(date)\\n\\n如果你看到这条消息说明基础通信正常。\\n\\n下一步在Claude中完成一个任务看是否能收到自动通知。\"}")
if echo "$RESPONSE" | grep -q '"ok":true'; then
echo " ✅ 测试消息发送成功"
else
echo " ❌ 测试消息发送失败"
echo " 响应: $RESPONSE"
fi
else
echo " ⚠️ Telegram配置不完整"
fi
# 6. 检查tmux sessions
echo ""
echo "📋 6. 检查tmux sessions"
if command -v tmux >/dev/null 2>&1; then
echo " 当前tmux sessions:"
tmux list-sessions 2>/dev/null || echo " 无活跃session"
else
echo " ❌ tmux未安装"
fi
echo ""
echo "🏁 测试完成"
echo ""
echo "💡 下一步调试建议:"
echo "1. 确认你收到了上面的Telegram测试消息"
echo "2. 在tmux中运行Claude完成一个简单任务"
echo "3. 检查是否收到自动通知"
echo "4. 如果没有收到检查Claude输出是否有错误信息"
echo ""
echo "🔧 如果仍有问题,请运行:"
echo " tmux new-session -s claude-debug"
echo " # 在新session中:"
echo " export CLAUDE_HOOKS_CONFIG=$PROJECT_DIR/claude-hooks.json"
echo " claude"
echo " # 然后尝试一个简单任务"