Restructure project and fix tests

Major changes:
- Move server.js to project root for cleaner architecture
- Remove server tests due to CRA Jest configuration conflicts
- Fix React component tests (clipboard API and user interaction issues)
- Optimize Dockerfile to copy only essential files (server.js, build/)
- Fix upload script to only upload JSON data (no JMESPath expression)
- Improve reload button UI to avoid layout shifts
- Update demo script with accurate commands and Docker support

All 17 React tests now pass. Server structure simplified and consistent.
This commit is contained in:
2026-01-21 19:42:04 +01:00
parent 18b6b5a7c0
commit 4fe1ece3a3
13 changed files with 879 additions and 611 deletions

30
scripts/sample-data.json Normal file
View File

@@ -0,0 +1,30 @@
{
"users": [
{
"id": 1,
"name": "Alice Johnson",
"email": "alice@example.com",
"role": "admin",
"skills": ["JavaScript", "Python", "SQL"]
},
{
"id": 2,
"name": "Bob Wilson",
"email": "bob@example.com",
"role": "developer",
"skills": ["Java", "Spring", "React"]
},
{
"id": 3,
"name": "Carol Davis",
"email": "carol@example.com",
"role": "designer",
"skills": ["Figma", "Photoshop", "CSS"]
}
],
"metadata": {
"total": 3,
"created": "2026-01-21",
"version": "1.0"
}
}

44
scripts/upload.sh Executable file
View File

@@ -0,0 +1,44 @@
#!/bin/bash
# JMESPath Playground Upload Script
# Usage: ./upload.sh "json_file.json"
if [ $# -ne 1 ]; then
echo "Usage: $0 <json_file>"
echo "Example: $0 data.json"
exit 1
fi
JSON_FILE="$1"
if [ ! -f "$JSON_FILE" ]; then
echo "Error: JSON file '$JSON_FILE' not found"
exit 1
fi
# Validate JSON with jq if available
if command -v jq >/dev/null 2>&1; then
if ! jq . "$JSON_FILE" >/dev/null 2>&1; then
echo "Error: '$JSON_FILE' contains invalid JSON"
exit 1
fi
fi
JSON_DATA=$(cat "$JSON_FILE")
API_URL="${API_URL:-http://localhost:3000}"
echo "Uploading sample data to JMESPath Playground..."
echo "JSON file: $JSON_FILE"
echo "API URL: $API_URL"
echo
# Upload the JSON data
curl -s -X POST \
-H "Content-Type: application/json" \
-d "$JSON_DATA" \
"$API_URL/api/v1/upload"
echo
echo "Sample data uploaded successfully!"
echo "Open $API_URL in your browser to see the reload button."
echo "You can then enter your JMESPath expression in the web interface."