144 lines
4.1 KiB
Bash
Executable File
144 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Test script to verify scheduler fields (page_progress, auto_progress) are preserved
|
|
|
|
echo "=========================================="
|
|
echo "Scheduler Fields Preservation Test"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Colors for output
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Check if MQTT broker is configured
|
|
if [ -f ../.env ]; then
|
|
source ../.env
|
|
MQTT_HOST=${MQTT_BROKER:-localhost}
|
|
else
|
|
MQTT_HOST=localhost
|
|
fi
|
|
|
|
echo -e "${YELLOW}Using MQTT broker: ${MQTT_HOST}${NC}"
|
|
echo ""
|
|
|
|
# Test event with scheduler fields
|
|
TEST_EVENT='{
|
|
"id": 999,
|
|
"occurrence_of_id": 999,
|
|
"group_id": 2,
|
|
"title": "Test Event with Scheduler Fields",
|
|
"start": "2025-01-01T10:00:00+00:00",
|
|
"end": "2025-12-31T23:59:59+00:00",
|
|
"recurrence_rule": "FREQ=DAILY",
|
|
"recurrence_end": "2025-12-31T23:59:59",
|
|
"presentation": {
|
|
"type": "slideshow",
|
|
"auto_advance": true,
|
|
"slide_interval": 10,
|
|
"page_progress": true,
|
|
"auto_progress": true,
|
|
"files": [
|
|
{
|
|
"name": "test.pdf",
|
|
"url": "http://server:8000/api/files/test.pdf"
|
|
}
|
|
]
|
|
}
|
|
}'
|
|
|
|
echo "1. Sending test event with scheduler fields to MQTT..."
|
|
echo ""
|
|
echo "Event contains:"
|
|
echo " - page_progress: true (show overall progress bar)"
|
|
echo " - auto_progress: true (show per-page countdown)"
|
|
echo " - recurrence_rule: FREQ=DAILY"
|
|
echo " - occurrence_of_id: 999"
|
|
echo ""
|
|
|
|
mosquitto_pub -h "$MQTT_HOST" -t "infoscreen/events/2" -m "$TEST_EVENT"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}✓ Event sent successfully${NC}"
|
|
else
|
|
echo -e "${RED}✗ Failed to send event${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "2. Waiting for event to be processed..."
|
|
sleep 2
|
|
|
|
echo ""
|
|
echo "3. Checking current_event.json for scheduler fields..."
|
|
echo ""
|
|
|
|
EVENT_FILE="../src/current_event.json"
|
|
|
|
if [ ! -f "$EVENT_FILE" ]; then
|
|
echo -e "${RED}✗ Event file not found: $EVENT_FILE${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${YELLOW}Current event content:${NC}"
|
|
cat "$EVENT_FILE" | jq '.'
|
|
echo ""
|
|
|
|
# Check for specific fields
|
|
echo "4. Verifying scheduler fields are preserved..."
|
|
echo ""
|
|
|
|
PAGE_PROGRESS=$(cat "$EVENT_FILE" | jq -r '.[0].page_progress // .page_progress // "not_found"')
|
|
AUTO_PROGRESS=$(cat "$EVENT_FILE" | jq -r '.[0].auto_progress // .auto_progress // "not_found"')
|
|
OCCURRENCE_ID=$(cat "$EVENT_FILE" | jq -r '.[0].occurrence_of_id // .occurrence_of_id // "not_found"')
|
|
RECURRENCE=$(cat "$EVENT_FILE" | jq -r '.[0].recurrence_rule // .recurrence_rule // "not_found"')
|
|
|
|
if [ "$PAGE_PROGRESS" = "true" ]; then
|
|
echo -e "${GREEN}✓ page_progress preserved: $PAGE_PROGRESS${NC}"
|
|
else
|
|
echo -e "${RED}✗ page_progress missing or incorrect: $PAGE_PROGRESS${NC}"
|
|
fi
|
|
|
|
if [ "$AUTO_PROGRESS" = "true" ]; then
|
|
echo -e "${GREEN}✓ auto_progress preserved: $AUTO_PROGRESS${NC}"
|
|
else
|
|
echo -e "${RED}✗ auto_progress missing or incorrect: $AUTO_PROGRESS${NC}"
|
|
fi
|
|
|
|
if [ "$OCCURRENCE_ID" = "999" ]; then
|
|
echo -e "${GREEN}✓ occurrence_of_id preserved: $OCCURRENCE_ID${NC}"
|
|
else
|
|
echo -e "${RED}✗ occurrence_of_id missing or incorrect: $OCCURRENCE_ID${NC}"
|
|
fi
|
|
|
|
if [ "$RECURRENCE" = "FREQ=DAILY" ]; then
|
|
echo -e "${GREEN}✓ recurrence_rule preserved: $RECURRENCE${NC}"
|
|
else
|
|
echo -e "${RED}✗ recurrence_rule missing or incorrect: $RECURRENCE${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "5. Checking simclient log for debug messages..."
|
|
echo ""
|
|
|
|
LOG_FILE="../logs/simclient.log"
|
|
|
|
if [ -f "$LOG_FILE" ]; then
|
|
echo -e "${YELLOW}Recent log entries mentioning scheduler fields:${NC}"
|
|
tail -20 "$LOG_FILE" | grep -E "page_progress|auto_progress" || echo " (no debug messages - set LOG_LEVEL=DEBUG to see them)"
|
|
else
|
|
echo -e "${YELLOW}Log file not found: $LOG_FILE${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo -e "${GREEN}Test Complete${NC}"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Summary:"
|
|
echo " - Scheduler fields (page_progress, auto_progress) should be preserved in current_event.json"
|
|
echo " - All metadata from the scheduler is automatically stored without filtering"
|
|
echo " - Set LOG_LEVEL=DEBUG in .env to see field logging in simclient.log"
|
|
echo ""
|