#!/usr/bin/env bash
# scripts/ci/test-gitlab-metadata - Functional tests for gitlab metadata fetcher
set -euo pipefail

# 1. Setup
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
FETCH_SCRIPT="$SCRIPT_DIR/fetch-gitlab-metadata"
TEMP_FILE=$(mktemp)
trap 'rm -f "$TEMP_FILE"' EXIT

# 2. Test fetching all
# echo "Testing: fetch-gitlab-metadata --all"
"$FETCH_SCRIPT" --all > "$TEMP_FILE"

# 3. Verify output contains issues and milestones sections
if ! grep -q -e "--- Fetching Open Issues ---" "$TEMP_FILE"; then
    echo "FAIL: Missing issues section"
    exit 1
fi

if ! grep -q -e "--- Fetching Active Milestones ---" "$TEMP_FILE"; then
    echo "FAIL: Missing milestones section"
    exit 1
fi

# 4. Check for duplicate titles in issues (using glab --all for all states)
# echo "Checking for duplicate issue titles..."
# Fetching all issues as JSON and using jq to get titles
DUPLICATES=$(glab issue list --all --per-page 100 --output json | jq -r '.[].title' | sort | uniq -d)

if [ -n "$DUPLICATES" ]; then
    echo "WARN: Duplicate issue titles found:"
    echo "$DUPLICATES"
    # exit 1 # We might want to warn instead of failing if duplicates are expected but unwanted
fi

# echo "✓ GitLab metadata functional tests passed"
exit 0
