#!/usr/bin/env bash
set -euo pipefail

PASS=0
FAIL=0

test_case() {
    local desc="$1"
    local task_id="$2"
    local expected="$3"

    TASK_ID="$task_id"

    # 테스트 대상 로직 복사
    RETRY_SUFFIX=$(echo "$TASK_ID" | grep -o '+[0-9]*$' || echo "")
    BASE_FOR_RETRY=$(echo "$TASK_ID" | sed 's/+[0-9]*$//')

    if [[ -n "$RETRY_SUFFIX" ]]; then
        CURRENT_RETRY=$(echo "$RETRY_SUFFIX" | tr -d '+')
        NEXT_RETRY=$((CURRENT_RETRY + 1))
    else
        NEXT_RETRY=1
    fi

    NEW_TASK_ID="${BASE_FOR_RETRY}+${NEXT_RETRY}"

    if [[ "$NEW_TASK_ID" == "$expected" ]]; then
        echo "✅ PASS: ${desc} — ${task_id} → ${NEW_TASK_ID}"
        PASS=$((PASS + 1))
    else
        echo "❌ FAIL: ${desc} — ${task_id} → ${NEW_TASK_ID} (expected: ${expected})"
        FAIL=$((FAIL + 1))
    fi
}

# 5개 시나리오 실행
test_case "Phase 있는 태스크 첫 재위임" "task-1861_2.2" "task-1861_2.2+1"
test_case "이미 +1인 태스크 재위임" "task-1861_2.2+1" "task-1861_2.2+2"
test_case "Phase 없는 태스크 재위임" "task-1865" "task-1865+1"
test_case "병렬 태스크 재위임" "task-1862_a" "task-1862_a+1"
test_case "기존 +3 재시도 증가" "task-1860_3.1+3" "task-1860_3.1+4"

echo ""
echo "결과: ${PASS} passed, ${FAIL} failed (total: $((PASS + FAIL)))"
exit $FAIL
