message-center/test.sh

57 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Test script for Message Center API
BASE_URL="${1:-http://localhost:8025}"
echo "Testing Message Center at $BASE_URL"
echo "=================================="
# Health check
echo -n "Health check: "
curl -sf "$BASE_URL/health" && echo " ✓" || echo " ✗"
# List new messages
echo ""
echo "GET /messages/new:"
curl -sf "$BASE_URL/messages/new" | jq '.[0:2]' 2>/dev/null || echo "No messages or error"
# List recent messages
echo ""
echo "GET /messages?since=1h:"
curl -sf "$BASE_URL/messages?since=1h" | jq 'length' 2>/dev/null | xargs -I{} echo "{} messages" || echo "Error"
# Test since with different units
echo ""
echo "Testing since parameter parsing:"
for unit in "1h" "24h" "7d" "1w"; do
count=$(curl -sf "$BASE_URL/messages?since=$unit" | jq 'length' 2>/dev/null || echo "err")
echo " since=$unit: $count messages"
done
# Get single message (if available)
echo ""
echo "GET /messages/{id} (first available):"
first_id=$(curl -sf "$BASE_URL/messages/new" | jq -r '.[0].id // empty' 2>/dev/null)
if [ -n "$first_id" ]; then
echo " Fetching: $first_id"
curl -sf "$BASE_URL/messages/$first_id" | jq '{id, source, from, subject}' 2>/dev/null || echo " Error"
else
echo " No messages available"
fi
# Test cursor API
echo ""
echo "POST /messages/ack:"
curl -sf -X POST "$BASE_URL/messages/ack" \
-H "Content-Type: application/json" \
-d '{"consumer": "test", "timestamp": "2026-02-02T12:00:00Z"}' | jq . 2>/dev/null || echo "Error"
# Legacy endpoints
echo ""
echo "GET /accounts (legacy):"
curl -sf "$BASE_URL/accounts" | jq . 2>/dev/null || echo "Error"
echo ""
echo "=================================="
echo "Tests complete"