#!/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"