#!/bin/bash

# Test script for import_audio_files tool
# Tests tool registration and basic validation

# Database path - USE TEST DATABASE
DB_PATH="${1:-../db/test.duckdb}"

echo "=== Testing import_audio_files Tool ==="
echo "Database: $DB_PATH"
echo ""

# Test 1: List available tools (should include import_audio_files)
echo "Test 1: List available tools"
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | ../skraak_mcp "$DB_PATH" | jq -r '.result.tools[] | select(.name == "import_audio_files") | "✓ Found: \(.name) - \(.description)"'
echo ""

# Test 2: Get tool schema
echo "Test 2: Get import_audio_files tool schema"
echo '{"jsonrpc":"2.0","method":"tools/list","id":2}' | ../skraak_mcp "$DB_PATH" | jq '.result.tools[] | select(.name == "import_audio_files") | .inputSchema.properties'
echo ""

# Test 3: Test validation with invalid folder path
echo "Test 3: Test validation - invalid folder path"
echo '{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "import_audio_files",
    "arguments": {
      "folder_path": "/nonexistent/folder",
      "dataset_id": "test123",
      "location_id": "loc456",
      "cluster_id": "clust789"
    }
  },
  "id": 3
}' | ../skraak_mcp "$DB_PATH" | jq -r '.error.message // "Validation passed (unexpected!)"'
echo ""

# Test 4: Test validation with invalid dataset ID
echo "Test 4: Test validation - invalid dataset_id"
echo '{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "import_audio_files",
    "arguments": {
      "folder_path": "/tmp",
      "dataset_id": "invalidXXXXXX",
      "location_id": "invalidXXXXXX",
      "cluster_id": "invalidXXXXXX"
    }
  },
  "id": 4
}' | ../skraak_mcp "$DB_PATH" | jq -r '.error.message // "No error (unexpected!)"'
echo ""

echo "=== Test Complete ==="
echo ""
echo "Note: For full functional testing with actual WAV files:"
echo "1. Create a test dataset, location, and cluster in the database"
echo "2. Place WAV files in a test folder"
echo "3. Run import with valid IDs and folder path"