57 lines
1.6 KiB
Bash
Executable File
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"
|