140 lines
4.0 KiB
Bash
140 lines
4.0 KiB
Bash
#!/bin/bash
|
|
# Script to reproduce useLocation() error on demand
|
|
# Run this to trigger conditions that cause the error
|
|
# If error appears = bug exists, If no error = bug is fixed
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo "useLocation() Error Reproduction Script"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "This script will trigger conditions known to cause:"
|
|
echo "'useLocation() may be used only in the context of a <Router> component'"
|
|
echo ""
|
|
|
|
# Function to check if error appears in browser console
|
|
function wait_for_check() {
|
|
echo ""
|
|
echo "⚠️ NOW CHECK YOUR BROWSER:"
|
|
echo " 1. Open: https://app.igny8.com/writer/tasks"
|
|
echo " 2. Open Developer Console (F12)"
|
|
echo " 3. Look for: 'useLocation() may be used only in the context of a <Router> component'"
|
|
echo ""
|
|
echo " ✅ NO ERROR = Bug is FIXED"
|
|
echo " ❌ ERROR APPEARS = Bug still EXISTS"
|
|
echo ""
|
|
read -p "Press Enter after checking..."
|
|
}
|
|
|
|
# Test 1: Clear Vite cache and restart frontend
|
|
function test1_clear_cache_restart() {
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "TEST 1: Clear Vite Cache + Restart Frontend"
|
|
echo "=========================================="
|
|
echo "This simulates container operation that wipes cache..."
|
|
|
|
echo "Clearing Vite cache..."
|
|
docker compose exec igny8_frontend rm -rf /app/node_modules/.vite || true
|
|
|
|
echo "Restarting frontend container..."
|
|
docker compose restart igny8_frontend
|
|
|
|
echo "Waiting for frontend to start (30 seconds)..."
|
|
sleep 30
|
|
|
|
wait_for_check
|
|
}
|
|
|
|
# Test 2: Just restart frontend (no cache clear)
|
|
function test2_restart_only() {
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "TEST 2: Restart Frontend Only (No Cache Clear)"
|
|
echo "=========================================="
|
|
|
|
echo "Restarting frontend container..."
|
|
docker compose restart igny8_frontend
|
|
|
|
echo "Waiting for frontend to start (30 seconds)..."
|
|
sleep 30
|
|
|
|
wait_for_check
|
|
}
|
|
|
|
# Test 3: Clear cache without restart
|
|
function test3_cache_only() {
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "TEST 3: Clear Vite Cache Only (No Restart)"
|
|
echo "=========================================="
|
|
echo "Checking if HMR triggers the error..."
|
|
|
|
echo "Clearing Vite cache..."
|
|
docker compose exec igny8_frontend rm -rf /app/node_modules/.vite
|
|
|
|
echo "Waiting for HMR rebuild (20 seconds)..."
|
|
sleep 20
|
|
|
|
wait_for_check
|
|
}
|
|
|
|
# Test 4: Multiple rapid restarts
|
|
function test4_rapid_restarts() {
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "TEST 4: Rapid Container Restarts (Stress Test)"
|
|
echo "=========================================="
|
|
echo "This simulates multiple deployment cycles..."
|
|
|
|
for i in {1..3}; do
|
|
echo "Restart $i/3..."
|
|
docker compose restart igny8_frontend
|
|
sleep 10
|
|
done
|
|
|
|
echo "Waiting for final startup (30 seconds)..."
|
|
sleep 30
|
|
|
|
wait_for_check
|
|
}
|
|
|
|
# Main menu
|
|
echo "Select test to run:"
|
|
echo "1) Clear cache + restart (most likely to trigger bug)"
|
|
echo "2) Restart only"
|
|
echo "3) Clear cache only (HMR test)"
|
|
echo "4) Rapid restarts (stress test)"
|
|
echo "5) Run all tests"
|
|
echo "q) Quit"
|
|
echo ""
|
|
read -p "Enter choice: " choice
|
|
|
|
case $choice in
|
|
1) test1_clear_cache_restart ;;
|
|
2) test2_restart_only ;;
|
|
3) test3_cache_only ;;
|
|
4) test4_rapid_restarts ;;
|
|
5)
|
|
test1_clear_cache_restart
|
|
test2_restart_only
|
|
test3_cache_only
|
|
test4_rapid_restarts
|
|
;;
|
|
q) exit 0 ;;
|
|
*) echo "Invalid choice"; exit 1 ;;
|
|
esac
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "Testing Complete"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "If you saw the useLocation() error:"
|
|
echo " → Bug still exists, needs investigation"
|
|
echo ""
|
|
echo "If NO error appeared in any test:"
|
|
echo " → Bug is FIXED! ✅"
|
|
echo ""
|