#!/bin/sh
# 来伊份团队 pre-push 钩子
# 对应《来伊份工作流约束规范 §4》分支策略
# 对应《来伊份工作流约束规范 §3.3》自动化执法工具
# 由 lyf-rules 自动生成

echo "🔍 [来伊份] 运行 pre-push 检查..."

# 1. 分支保护：禁止直接推送到 main/master
current_branch=$(git rev-parse --abbrev-ref HEAD)

if [ "$current_branch" = "main" ] || [ "$current_branch" = "master" ]; then
  echo "   └─ ❌ 禁止直接推送至 $current_branch 分支"
  echo "      请通过 feature -> develop -> release -> main 流程合并"
  exit 1
fi

# 2. 运行全量测试
echo "   ├─ 运行全量测试..."

if command -v npx >/dev/null 2>&1; then
  if [ -f "vitest.config.ts" ] || [ -f "jest.config.js" ]; then
    echo "   ├─ 运行单元测试..."
    # 优先使用 vitest
    if [ -f "vitest.config.ts" ]; then
      npx vitest run 2>&1
    elif [ -f "jest.config.js" ]; then
      npx jest --passWithNoTests 2>&1
    fi
    if [ $? -ne 0 ]; then
      echo "   └─ ❌ 测试未通过，请修复后推送"
      exit 1
    fi
  fi
fi

echo "   └─ ✅ pre-push 检查完成"