#!/bin/bash
# Test skraak time command
# Usage: ./test_time.sh
# No database required

source "$(dirname "$0")/test_lib.sh"

echo "=== Testing skraak time ==="
echo ""

check_binary

# Test 1: Get current time
echo "Test 1: Get current time"
result=$($PROJECT_DIR/skraak time 2>&1)

time_val=$(echo "$result" | jq -r '.time // empty')
timezone=$(echo "$result" | jq -r '.timezone // empty')
unix_ts=$(echo "$result" | jq -r '.unix // empty')

if [ -n "$time_val" ] && [ -n "$timezone" ] && [ -n "$unix_ts" ]; then
    echo -e "${GREEN}${NC} time returns all fields"
    echo "  Time: $time_val"
    echo "  Timezone: $timezone"
    echo "  Unix: $unix_ts"
    ((TESTS_RUN++)) || true
    ((TESTS_PASSED++)) || true
else
    echo -e "${RED}${NC} time missing fields"
    echo "  Output: $result"
    ((TESTS_RUN++)) || true
    ((TESTS_FAILED++)) || true
fi

# Test 2: Unix timestamp is a valid number
echo ""
echo "Test 2: Unix timestamp is numeric and recent"
if [ "$unix_ts" -gt 1700000000 ] 2>/dev/null; then
    echo -e "${GREEN}${NC} Unix timestamp is reasonable ($unix_ts)"
    ((TESTS_RUN++)) || true
    ((TESTS_PASSED++)) || true
else
    echo -e "${RED}${NC} Unix timestamp looks wrong ($unix_ts)"
    ((TESTS_RUN++)) || true
    ((TESTS_FAILED++)) || true
fi

# Test 3: Time is valid RFC3339
echo ""
echo "Test 3: Time is valid RFC3339 format"
if echo "$time_val" | grep -qE '^[0-9]{4}-[0-9]{2}-[0-9]{2}T'; then
    echo -e "${GREEN}${NC} Time is RFC3339 format"
    ((TESTS_RUN++)) || true
    ((TESTS_PASSED++)) || true
else
    echo -e "${RED}${NC} Time format unexpected: $time_val"
    ((TESTS_RUN++)) || true
    ((TESTS_FAILED++)) || true
fi

echo ""
print_summary