Просмотр исходного кода

chore(scripts): avoid hardcoded docker container names

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <[email protected]>
Ding 3 недель назад
Родитель
Сommit
f625975aab
2 измененных файлов с 31 добавлено и 29 удалено
  1. 12 12
      scripts/cleanup-test-users.sh
  2. 19 17
      scripts/run-e2e-tests.sh

+ 12 - 12
scripts/cleanup-test-users.sh

@@ -1,10 +1,10 @@
 #!/bin/bash
 # 清理测试用户脚本
 
-echo "🔍 检查测试用户数量..."
+echo "检查测试用户数量..."
 
 # 统计测试用户
-docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
+docker compose -f docker-compose.dev.yaml exec -T postgres psql -U postgres -d claude_code_hub -c "
 SELECT
   COUNT(*) as 测试用户数量
 FROM users
@@ -13,8 +13,8 @@ WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
 "
 
 echo ""
-echo "📋 预览将要删除的用户(前 10 个)..."
-docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
+echo "预览将要删除的用户(前 10 个)..."
+docker compose -f docker-compose.dev.yaml exec -T postgres psql -U postgres -d claude_code_hub -c "
 SELECT id, name, created_at
 FROM users
 WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
@@ -24,13 +24,13 @@ LIMIT 10;
 "
 
 echo ""
-read -p "⚠️  确认删除这些测试用户吗?(y/N): " confirm
+read -p "确认删除这些测试用户吗?(y/N): " confirm
 
 if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
-  echo "🗑️  开始清理..."
+  echo "开始清理..."
 
   # 软删除关联的 keys
-  docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
+  docker compose -f docker-compose.dev.yaml exec -T postgres psql -U postgres -d claude_code_hub -c "
   UPDATE keys
   SET deleted_at = NOW(), updated_at = NOW()
   WHERE user_id IN (
@@ -42,19 +42,19 @@ if [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
   "
 
   # 软删除测试用户
-  docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
+  docker compose -f docker-compose.dev.yaml exec -T postgres psql -U postgres -d claude_code_hub -c "
   UPDATE users
   SET deleted_at = NOW(), updated_at = NOW()
   WHERE (name LIKE '测试用户%' OR name LIKE '%test%' OR name LIKE 'Test%')
     AND deleted_at IS NULL;
   "
 
-  echo "清理完成!"
+  echo "清理完成!"
   echo ""
-  echo "📊 剩余用户统计:"
-  docker exec claude-code-hub-db-dev psql -U postgres -d claude_code_hub -c "
+  echo "剩余用户统计:"
+  docker compose -f docker-compose.dev.yaml exec -T postgres psql -U postgres -d claude_code_hub -c "
   SELECT COUNT(*) as 总用户数 FROM users WHERE deleted_at IS NULL;
   "
 else
-  echo "取消清理"
+  echo "取消清理"
 fi

+ 19 - 17
scripts/run-e2e-tests.sh

@@ -12,19 +12,21 @@
 
 set -e  # 遇到错误立即退出
 
-echo "🚀 E2E 测试运行脚本"
+echo "E2E 测试运行脚本"
 echo "===================="
 echo ""
 
 # ==================== 1. 检查数据库连接 ====================
 
-echo "🔍 检查数据库连接..."
-if docker ps | grep -q claude-code-hub-db-dev; then
-  echo "✅ PostgreSQL 已运行"
+COMPOSE_FILE="docker-compose.dev.yaml"
+
+echo "检查数据库连接..."
+if [ -n "$(docker compose -f "$COMPOSE_FILE" ps -q --status running postgres 2>/dev/null)" ]; then
+  echo "PostgreSQL 已运行"
 else
-  echo "❌ PostgreSQL 未运行,正在启动..."
-  docker compose up -d postgres redis
-  echo "等待数据库启动..."
+  echo "PostgreSQL 未运行,正在启动..."
+  docker compose -f "$COMPOSE_FILE" up -d postgres redis
+  echo "等待数据库启动..."
   sleep 5
 fi
 
@@ -32,14 +34,14 @@ echo ""
 
 # ==================== 2. 启动开发服务器 ====================
 
-echo "🚀 启动 Next.js 开发服务器..."
+echo "启动 Next.js 开发服务器..."
 
 # 后台启动服务器
 PORT=13500 bun run dev > /tmp/nextjs-dev.log 2>&1 &
 SERVER_PID=$!
 
-echo "   服务器 PID: $SERVER_PID"
-echo "等待服务器就绪..."
+echo "服务器 PID: $SERVER_PID"
+echo "等待服务器就绪..."
 
 # 等待服务器启动(最多等待 60 秒)
 TIMEOUT=60
@@ -47,7 +49,7 @@ COUNTER=0
 
 while [ $COUNTER -lt $TIMEOUT ]; do
   if curl -s http://localhost:13500/api/actions/health > /dev/null 2>&1; then
-    echo "服务器已就绪"
+    echo "服务器已就绪"
     break
   fi
 
@@ -58,7 +60,7 @@ done
 
 if [ $COUNTER -eq $TIMEOUT ]; then
   echo ""
-  echo "服务器启动超时"
+  echo "服务器启动超时"
   kill $SERVER_PID 2>/dev/null || true
   exit 1
 fi
@@ -67,7 +69,7 @@ echo ""
 
 # ==================== 3. 运行 E2E 测试 ====================
 
-echo "🧪 运行 E2E 测试..."
+echo "运行 E2E 测试..."
 echo ""
 
 # 设置环境变量
@@ -83,19 +85,19 @@ echo ""
 
 # ==================== 4. 清理并停止服务器 ====================
 
-echo "🧹 停止开发服务器..."
+echo "停止开发服务器..."
 kill $SERVER_PID 2>/dev/null || true
 wait $SERVER_PID 2>/dev/null || true
 
-echo "服务器已停止"
+echo "服务器已停止"
 echo ""
 
 # ==================== 5. 输出测试结果 ====================
 
 if [ $TEST_EXIT_CODE -eq 0 ]; then
-  echo "E2E 测试全部通过"
+  echo "E2E 测试全部通过"
   exit 0
 else
-  echo "E2E 测试失败"
+  echo "E2E 测试失败"
   exit $TEST_EXIT_CODE
 fi