59 lines
No EOL
1.6 KiB
Bash
Executable file
59 lines
No EOL
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
echo "Testing End-to-End Backtest Flow"
|
|
echo "================================"
|
|
|
|
# Wait for services to be ready
|
|
echo "Waiting for services to be ready..."
|
|
sleep 5
|
|
|
|
# Test 1: Check web-api health
|
|
echo -e "\n1. Checking web-api health..."
|
|
curl -s http://localhost:2003/health | jq .
|
|
|
|
# Test 2: Check orchestrator health
|
|
echo -e "\n2. Checking orchestrator health..."
|
|
curl -s http://localhost:2004/health | jq .
|
|
|
|
# Test 3: Create a backtest
|
|
echo -e "\n3. Creating a backtest..."
|
|
BACKTEST_RESPONSE=$(curl -s -X POST http://localhost:2003/api/backtests \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"strategy": "SimpleMovingAverageCrossover",
|
|
"symbols": ["AAPL"],
|
|
"startDate": "2024-01-01",
|
|
"endDate": "2024-01-31",
|
|
"initialCapital": 100000,
|
|
"config": {
|
|
"commission": 0.001,
|
|
"slippage": 0.0001
|
|
}
|
|
}')
|
|
|
|
echo "$BACKTEST_RESPONSE" | jq .
|
|
|
|
# Extract backtest ID
|
|
BACKTEST_ID=$(echo "$BACKTEST_RESPONSE" | jq -r .id)
|
|
echo "Backtest ID: $BACKTEST_ID"
|
|
|
|
# Test 4: Check backtest status
|
|
echo -e "\n4. Checking backtest status..."
|
|
sleep 2
|
|
curl -s http://localhost:2003/api/backtests/$BACKTEST_ID | jq .
|
|
|
|
# Test 5: Get backtest results (wait a bit for completion)
|
|
echo -e "\n5. Waiting for backtest to complete..."
|
|
for i in {1..10}; do
|
|
sleep 2
|
|
STATUS=$(curl -s http://localhost:2003/api/backtests/$BACKTEST_ID | jq -r .status)
|
|
echo "Status: $STATUS"
|
|
|
|
if [ "$STATUS" = "completed" ]; then
|
|
echo -e "\n6. Getting backtest results..."
|
|
curl -s http://localhost:2003/api/backtests/$BACKTEST_ID/results | jq .
|
|
break
|
|
fi
|
|
done
|
|
|
|
echo -e "\nEnd-to-End test complete!" |